Laravel Collective - Проблема привязки модели для не красноречивых имен таблиц - PullRequest
0 голосов
/ 28 мая 2018

У меня есть модель User, у которой есть , чтобы иметь таблицу с именем 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) Странно то, что он не берет таблицу из таблицы классов пользователя.

У меня вопрос, есть ли способ получить FORM::model get admin_users имя таблицы вместо users, и , если я решу отпустить FORM::model ииспользуйте FORM::open, смогу ли я получить обратно входные данные запроса о неудачной проверке?

1 Ответ

0 голосов
/ 29 мая 2018

Ваши правила проверки определяют, какую таблицу использовать для уникальной проверки:

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

unique:users указывает уникальное правило на использование таблицы users.

unique:table,column,except,idColumn - Документы Laravel 5.6 - Валидация - Уникальное правило

...