Laravel Collective - 非雄辩表名的模型绑定问题

时间:2018-05-28 15:20:10

标签: laravel laravelcollective

我有一个的用户模型,有一个名为admin_users的表,已在模型中规定(protected $table = 'admin_users';

我使用Laravel Collective表格如下:

{!! Form::model($user, ['route' => ['users.update', $user->id], 'method' => 'put']) !!}

我的验证如下:

  $rules = array(
        'first_name'    => 'required',
        'last_name'     => 'required',
        'email'         => 'email|max:255|unique:users',
        'country_id'    => 'required|numeric',
        'user_status'   => 'required'
    );

我使用Laravel Collective FORM::model的唯一原因是为了在验证失败时轻松获取请求输入:

return redirect()->back()->withErrors($validator)->withInput($request->all())

虽然我得到验证成功:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'crm.users' doesn't exist (SQL: select count(*) as aggregate from `users` where `email` = jocelyn33@example.com) 奇怪的是,它没有从User类表中获取表。

我的问题是,如果我决定放弃{FORM::model获取admin_users表名而不是users {1}}并使用FORM::model,我仍然可以获得失败验证的请求输入吗?

1 个答案:

答案 0 :(得分:1)

您的验证规则定义了用于唯一检查的表格:

'email'         => 'email|max:255|unique:users',

unique:users告诉使用users表的唯一规则。

unique:table,column,except,idColumn - Laravel Docs 5.6 - Validation - Unique Rule