как использовать тот же запрос для альтернативных функций в Laravel - PullRequest
0 голосов
/ 06 апреля 2020

Я хочу проверить запрос к моей функции createUser, поэтому я создаю собственный запрос и добавляю свои правила, затем я хочу проверить тот же запрос к моей функции updateUser, но я хочу удалить правило "required" в новой функции без создать новый пользовательский запрос

мой пользовательский запрос

class userRequest extends FormRequest
{
/**
 * 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()
{
    return [
      'name' => 'required|string|max:255',
      'email' => 'required|string|email|max:255|unique:users',
      'password' => 'required|string|min:6|confirmed',
      'priv' => 'required|integer',
    ];
}
protected function failedValidation(Validator $validator)
{
    $response = [
    'status' => 'failure',
    'status_code' => 400,
    'message' => 'Bad Request',
    'errors' => $validator->errors(),
];
    throw new HttpResponseException(response()->json($response, 400));
}

}

Ответы [ 2 ]

0 голосов
/ 06 апреля 2020

Вы можете сначала проверить маршрут и изменить массив $rules, я предлагаю вам попробовать следующий код:

public function rules()
{
    $rules = [
        'name' => 'string|max:255',
        'email' => 'string|email|max:255|unique:users',
        'password' => 'string|min:6|confirmed',
        'priv' => 'integer',
    ];

    if (request()->route() != route('createUserRouteName')) { // write route name of createUser method
        foreach ($rules as $key => $rule) {
            $rules[$key] = 'required|' . $rule;
        }
    }
    return $rules;
}

Надеюсь, будет полезно, Дайте мне знать, если есть проблема.

0 голосов
/ 06 апреля 2020

Для каждого метода, который вы хотите использовать, у вас должна быть отдельная проверка правильности, вы можете прочитать больше здесь https://laravel.com/docs/7.x/validation

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...