bear 2018-01-03 21:46:18 4222次浏览 0条评论 0 0 0

当我创建一个news新闻form表单时,
添加新闻的时候执行create动作。
必填字段:title-标题,picture-图片,description-描述。
这时候在app\models\News.php里News.php下rules规则这样定义:

public function rules()
    {
        return [
            [['title', 'description', 'picture', ], 'required',],           
        ];
    }

但是我们更改的时候 只需要 [['title', 'description'], 'required'], 就可以了,
但是少了 image 字段 我们的表单就无法提交,这种问题怎么办啊??
下面就是scenario场景上场了
首先我们必须在app\models\News.php定义一个场景代码如下:

public function scenarios()
    {
        return [
            'create'=>['title','description','picture'],
            'update'=>['title','description'],
        ];
    }

然后修改rules规则:

public function rules()
    {
        return [
            [['title', 'description',  ], 'required','on'=>['create','update'],'message'=>'不能为空'],
            [['picture'], 'required', 'on' => 'create'],
        ];
    }

然后在控制器NewsController/create动作下添加这一句代码就可以:

 $model->scenario = 'create';

在NewsController/update动作下添加:

 $model->scenario = 'update';
    没有找到数据。
您需要登录后才可以评论。登录 | 立即注册