sjg20010414
楼主你的文章中有一个坑啊,用 gii 生成 model,会自动给每个字段添加验证,而插件作者的原始表 lft/rgt/lvl 三个字段都是 NOT NULL,结果生成了验证 required,从而导致无法添加节点。我搞了半天,调试到里面去,再仔细看原作者的文档,发现他的model是手写的,都没有验证的。所以正确的做法是,手写model,或者gii生成后,把原始表的所有字段的验证全去掉。
另外,你额外写一遍 getPostData() 函数,而这个函数 其实作者有的,所以,我觉得 应该让自己的controller 从 NodeController派生,从而不需要自己写这个函数,因为这个函数里面本身用了static,也就是延迟绑定的。
我自己的需求的代码还没搞好,暂时发现这些问题- sjg20010414 发布了话题验证码不能换字体文件?
- sjg20010414 回答了问题 yii2 文件无法上传
[['file'], 'file', 'skipOnEmpty' => false,'extensions'=>'xls,xlsx', 'checkExtensionByMimeType' => false], 就可以了
我根据调试发现,默认根据MIME类型来判断扩展名是启用的,并且我的xlsx文件被PHP的Magic扩展名库识别为了zip类型,从而zip和xlsx不相等,所以验证不通过了。不清楚是不是因为我的xlsx文件是wps或者moodle导出的原因,没有试验用Excel2010是否就能正确识别MIME,反正Yii2本身允许你通过配置参数不使用这个推断,绕过去就可以了。