2016-06-09 23:12:51 1970次浏览 2条回答 0 悬赏 20 金钱

文档里,文件上的示例代码。
控制器里

       if (Yii::$app->request->isPost) {
            $model->imageFile = UploadedFile::getInstance($model, 'imageFile');

加上验证,改成

       if (Yii::$app->request->isPost  && $model->validate()) {
            $model->imageFile = UploadedFile::getInstance($model, 'imageFile');

于是文件就不能上传了,提示请选择一个文件,是不是bug?
为嘛gii自动生成的代码里都不带$model->validate(),谁能彻底的解释下?
为了安全是不是该把服务器端和客户端验证都做了?

最佳答案

  • robbins 发布于 2016-06-18 02:07 举报

    load放到imageFile属性赋值uploaded对象后,另外load了就不要validate了,load默认自动验证。

    1 条回复
    回复于 2016-06-20 22:08 回复

    load会默认自动验证很关键,谢谢您给的答复

  • 回答于 2016-06-09 23:18 举报

    imageFile还没有数据加载进模型了 如何验证?验证得放到下面赋值了再验证。

    1 条回复
    回复于 2016-06-10 18:49 回复

    尴尬没写清楚,应该是这样的
    if (Yii::$app->request->isPost && $model->load(Yii::$app->request->post()) && $model->validate())
    这样加载可以了吗?

您需要登录后才可以回答。登录 | 立即注册
搞搞的传奇
见习主管

搞搞的传奇

注册时间:2015-02-24
最后登录:2020-06-04
在线时长:24小时46分
  • 粉丝8
  • 金钱5
  • 威望10
  • 积分345

热门问题