rule 规则问题

一个验证规则的问题求教,同一张表里
id tname fid三个字段
不同的fid可以同tname
1 test1 a
2 test1 b
下面这样不允许(同一个fid)
1 test1 a
2 test1 a
这种规则怎么写啊

自定义验证消息
protected $validatorMessages = array(
'tname.required' => '请填写名称。',
);
// 创建验证规则
$rules = array(
'tname' => 'unique:'.$this->resourceTable.',tname,'.e($data['fid']).',fid',
);
// 自定义验证消息
$messages = $this->validatorMessages;
// 开始验证
$validator = Validator::make($data, $rules, $messages);

ps.我这样写于上面的情况正好相反,要求是同fid不允许同名,不同fid可以
已邀请:

小sir

赞同来自: G8Ycn

$rules=[
'id'=>'required|unique:你的表名',
'tname'=>'required',
'fid'=>'required|unique:你的表名'
];

mrlian

赞同来自: G8Ycn

楼上正解 但若更新时便会出现错误 可以传个id忽略

G8Ycn

赞同来自: zl

问题解决。//unique:table,column,except,idColumn

添加用'tname' => 'unique:'.$this->resourceTable.', tname,NULL,id, fid,'.e($data['fid']),
不同的fid可以同tname

更新用'tname' => 'unique:'.$this->resourceTable.', tname,'.$id.',id, fid,'.e($data['fid']),
不同的fid可以同tname 且排除自身这种已存在的情况。

zl

赞同来自:

谢谢 楼主

要回复问题请先登录注册