如下代码:
public function rules()
{
return [
'name'=>'unique:roles',
];
}
以上代码完成了自动验证name值是否唯一。这在新建一条记录时很有用,但是当更新记录且没有改变name值时,该条验证必定会检测到与自己冲突,怎么在update时排除掉自己呢?
如下代码:
public function rules()
{
return [
'name'=>'unique:roles',
];
}
以上代码完成了自动验证name值是否唯一。这在新建一条记录时很有用,但是当更新记录且没有改变name值时,该条验证必定会检测到与自己冲突,怎么在update时排除掉自己呢?
你可以参照:Laravel 更新数据时在表单请求验证中排除自己,检查指定字段唯一性
backend/user/{user}
<?php
namespace App\Http\Requests\Backend\User;
use App\Http\Requests\Request;
class UpdateRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$id = $this->route('user'); //获取当前需要排除的id,这里的 user 是 路由 {} 中的参数
return [
'email' => "required|email|unique:users,email,".$id,
];
}
}
unique:表名,字段,需要排除的ID
2 回答3.1k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
2 回答1.2k 阅读
1 回答1.2k 阅读
1 回答1k 阅读
https://laravel.com/docs/5.3/...