Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何验证update laravel中的唯一电子邮件和唯一名称?_Laravel_Laravel Validation - Fatal编程技术网

如何验证update laravel中的唯一电子邮件和唯一名称?

如何验证update laravel中的唯一电子邮件和唯一名称?,laravel,laravel-validation,Laravel,Laravel Validation,这是我的代码: public function update(User $user) { $this->validate(request(), [ 'name' => 'required|min:3|max:50|unique:users,name,' . $user->id, 'email' => 'required|email|max:255|unique:users,email,' . $user->id,

这是我的代码:

public function update(User $user)
{
    $this->validate(request(), [
        'name'   => 'required|min:3|max:50|unique:users,name,' . $user->id,
        'email'  => 'required|email|max:255|unique:users,email,' . $user->id,
        'origin' => 'max:50',
        'about'  => 'max:5000',
    ]);
    $user = User::find($user);
    $user->name = request('name');
    $user->original = request('origin');
    $user->email = request('email');
    $user->about = request('about');
    $user->save();

    return back();
}
我得到了这个错误:

Illuminate\Database\QueryException
SQLSTATE[HY093]: Invalid parameter number (SQL: select * from .... ?))

验证函数expect第一个参数作为请求输入数组而不是请求对象。下面的代码可以正常工作

$this->validate(请求()->all(),$rules)


您还可以传递验证消息的第三个参数。

错误可能源于
$user=user::find($user)

由于您正在使用,因此不需要再次加载
用户

public function update(User $user)
{
    $this->validate(request(), [
        'name'   => 'required|min:3|max:50|unique:users,name,' . $user->id,
        'email'  => 'required|email|max:255|unique:users,email,' . $user->id,
        'origin' => 'max:50',
        'about'  => 'max:5000',
    ]);

    $user->name = request('name');
    $user->original = request('origin');
    $user->email = request('email');
    $user->about = request('about');
    $user->save();

    return back();
}

控制器中的
$this->validate(…)
期望第一个参数是
\illumb\Http\Request
的实例。谢谢,我删除了这一行$user=user::find($user);解决了我的问题