В Запросе проверки Laravel, как обрабатывать уникальные для разных столбцов при обновлении - PullRequest
0 голосов
/ 22 октября 2019

У меня было Employee form для его проверки при обновлении. Я создал запрос проверки как EmployeeEdit, и при обновлении содержимого формы сотрудника в контроллере я передаю этот запрос на проверку для проверки данных.

, ноФорма сотрудника имеет различные поля, которые я должен проверить на уникальность с различными таблицами. Например, в форме сотрудника есть поле emp_id, в котором я должен проверить уникальность в таблице пользователей, номер мобильного телефона для регистрации сотрудников.

Как проверить уникальность, кроме текущего идентификатора.

мои правила в EmployeeEdit Request

return [
         'emp_id' => 'nullable|max:255|unique:users,'.$this->get('emp_id'),
         'code' => 'nullable|unique:employees|max:255'.$this->get('code'),
         'mobile_number' => 'required|unique:employees|max:255,'.$this->get('mobile_number'),
 ];

Мой контроллер:

public function doEdit(EmployeeEdit $request, $id)
    { 
        echo "Validation passed";
        exit;
    }

Проблема: я не знаю, как передать эти поля, такие как emp_id, mobile_number иззапрос так, что они игнорируются для текущего запроса и должны быть проверены на другие данные для уникальности.

Ответы [ 2 ]

0 голосов
/ 22 октября 2019

Получил решение от комментария @serhii

Теперь в EmployeeEdit Request я добавил (сверху)

use Illuminate\Validation\Rule;

public function rules()
    {
        return [
                'emp_id' => ['nullable','max:255', Rule::unique('users', 'emp_id')->ignore($this->id)],
                'code' => ['nullable','max:255', Rule::unique('employees', 'code')->ignore($this->id,'user_id')],
                'mobile_number' => ['nullable','max:255', Rule::unique('employees', 'mobile_number')->ignore($this->id,'user_id')],

ПРИМЕЧАНИЕ. $this->id - это идентификатор из таблицы users, чтобы использовать его в таблице сотрудников (у которой user_id в качестве внешнего ключа), я должен явно определить столбец в employees табличном правиле.

0 голосов
/ 22 октября 2019
use Illuminate\Validation\Rule;

return [
         'emp_id' => [
                      'nullable',
                      'max:255',
                      Rule::unique('users', 'emp_id')->ignore(\Auth::user()->id),
         ],
 ];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...