在我将它们提交到我的数据库之前,我正在尝试我的值。我的领域需要非常特殊的验证类型,所以我的问题包括两部分。
我的表有3个字段:id,name,parent_id
目前我正在使用这些行来验证我的变量:
protected static $rules = array(
'name' => 'Required|Min:1|Max:255|unique:table,name'
);
它运作正常......
除此之外,这也会禁用编辑此记录的功能,因为如果我不更改名称则相同... 1)我需要忽略记录的id(这必须是一个变量,而不是一个固定的整数)
在文档中我发现了这个: http://laravel.com/docs/validation#rule-unique
这有效,但它不是变量:
'name' => 'Required|Min:1|Max:255|unique:table,fieldname,1'
在laravel论坛上我发现了这个: http://forums.laravel.io/viewtopic.php?id=1868
所以我试过这个:
'name' => 'Required|Min:1|Max:255|unique:table,fieldname,$input["table_id"]'
和
'name' => 'Required|Min:1|Max:255|unique:table,fieldname,'.$input["table_id"]
然而这对我不起作用......
2)对于具有相同parent_id的每条记录,名称必须是唯一的,我还想使用变量来做到这一点。根据文档,我应该能够做到这样的事情:
'name' => 'Required|Min:1|Max:255|unique:table,fieldname,'.$input["table_id"] .',parent_id,'.$input["parent_id"]
但这似乎不起作用......
提前致谢。
答案 0 :(得分:2)
在您使用' protected'的第一个代码中所以,也许你在课堂上验证你的数据
尝试做这样的事情
public static $rules = array(
//You don't need min:1 rule since you have the required rule
'name' => 'required|max:255|unique:TABLE_NAME',
...
);
public function save(array $options = array()) {
if (isset($this->attributes['id'])) { //do if you updating data
static::$rules['name'].=',name,' . $this->attributes['id'];
}
return parent::save($options);
}