我在Laravel 4应用程序中创建了一个Employer
模型,在Employer.php
中,我创建了以下函数来验证用户输入,然后将其保存到数据库中:
public static function validate($input)
{
$validator = Validator::make($input, static::$rules);
if ($validator->fails() {
return $validator;
}
return true;
}
当我在数据库中创建新记录时,这很好用,因为我传递的是我指定了特定字段的所有规则的值。
但是,数据库中有某些字段我不希望用户在创建后进行编辑(例如,business_name
)。在控制器的编辑方法中,我创建一个表单并从表单中省略这些字段。但验证失败,因为business_name
需要$rules
。
作为临时工作,我尝试在编辑表单中创建隐藏字段并使用business_name
填充它。但是,当我将表单修改为update
方法时,这也必须是唯一的并且失败!
有什么建议吗?有什么方法可以指定应该应用哪些验证规则,具体取决于调用它的方法?或者我应该在Employer.php
中专门创建一个新方法来验证更新方法吗?
答案 0 :(得分:2)
您可以使用required_without
验证规则。由于新实例化的模型还没有id字段,因此只有在id
不存在时才需要某些字段。这应该有效:
public static $rules = array(
'business_name' => 'required_without:id'
);