【发布时间】:2016-09-08 08:36:22
【问题描述】:
我是 Yii 框架的新手,我陷入了检查天气的简单任务中,用户是否为更新请求提供了任何输入。
考虑以下代码
型号代码:
class Car extends ActiveRecord {
public $id;
public $name;
public $registration;
public $created_at;
public function sceanrios(){
return ['create'=>['name','registration'],
'update'=>['name','registration']];
}
public function rules(){
return [['name','registration'],'required','on'=>'create']
}
}
控制器:
class CarController extends yii\rest\ActiveController{
public $modelClass = 'models/Car';
}
当我向 CarController 发送 PUT 请求而不发布任何属性时,它会给出 200 OK 响应。
我想要一个验证规则来检查用户是否实际发布了任何值,然后在更新后返回 OK;否则返回错误消息“至少一个字段应设置为更新”
我发现以下解决方案 Yii2 dependency custom rule validation 仅适用于 POST 请求,即在创建场景中,但它不适用于更新场景,因为 $this->attribute 包含旧值。
另一个具有相同问题的解决方案 Yii form model validation- either one is required 不适用于 PUT 请求
发现许多其他的,它们只适用于新记录,而不适用于更新现有记录。
有这方面的验证器吗?
【问题讨论】:
标签: php yii yii2 yii2-advanced-app