Size: a a a

Laravel Framework Russian Community

2020 August 20

🎃

🎃 Даниил ◠‿◠✿... in Laravel Framework Russian Community
источник

А

Артём in Laravel Framework Russian Community
источник
2020 August 21

DA

Dave Aios in Laravel Framework Russian Community
?
источник

А

Артём in Laravel Framework Russian Community
Уже кто-то успел
источник

Аg

Александр gsdesign... in Laravel Framework Russian Community
Александр gsdesign
В 7.х есть стандартная реализация auth.basic. Если валидация проходит, то методе доступен даже верный Auth::id().
В RouteServiceProvider прописал:
    protected function mapApiAuthBasicRoutes()
   {
       Route::prefix('api')
           ->middleware('auth.basic')
           ->namespace($this->namespace)
           ->group(base_path('routes/api.auth.basic.php'));
   }

Проблема только при неверных данных. Где и что мне настроить ещё?
Верный ответ на мой вопрос: по умолчанию при ошибке валидации в ларавел срабатывает редирект
Решение:
1 - в методе контроллера определить:
        $validator = Validator::make($data, $rules);
       if ($validator->fails()) {
           return response()->json(['errors'=>$validator->errors()]);
       }
   
2 - в FormRequest прописать
:
 use Illuminate\Contracts\Validation\Validator;
 use Illuminate\Http\Exceptions\HttpResponseException;
 
 protected function failedValidation(Validator $validator) {
            throw new HttpResponseException(response()->json($validator->errors(), 422));
        }
 
3 - создаём Middleware:
    public function handle($request, Closure $next)
   {
       $request->headers->set('Accept', 'application/json');
       return $next($request);
   }
       и прописываем его в Kernel в $middlewareGroups
источник

А

Артём in Laravel Framework Russian Community
Александр gsdesign
Верный ответ на мой вопрос: по умолчанию при ошибке валидации в ларавел срабатывает редирект
Решение:
1 - в методе контроллера определить:
        $validator = Validator::make($data, $rules);
       if ($validator->fails()) {
           return response()->json(['errors'=>$validator->errors()]);
       }
   
2 - в FormRequest прописать
:
 use Illuminate\Contracts\Validation\Validator;
 use Illuminate\Http\Exceptions\HttpResponseException;
 
 protected function failedValidation(Validator $validator) {
            throw new HttpResponseException(response()->json($validator->errors(), 422));
        }
 
3 - создаём Middleware:
    public function handle($request, Closure $next)
   {
       $request->headers->set('Accept', 'application/json');
       return $next($request);
   }
       и прописываем его в Kernel в $middlewareGroups
Ты юзаешь form request, но продолжаешь фигачить валидацию в контроллере. Зачем?
источник

А

Артём in Laravel Framework Russian Community
Пункт 3 — только ради Accept: application/json?
источник

Аg

Александр gsdesign... in Laravel Framework Russian Community
Артём
Ты юзаешь form request, но продолжаешь фигачить валидацию в контроллере. Зачем?
Странный вопрос. Я описал 3 способа решения проблемы. Как ты смог увидеть мой код?!
источник

А

Артём in Laravel Framework Russian Community
Александр gsdesign
Странный вопрос. Я описал 3 способа решения проблемы. Как ты смог увидеть мой код?!
А, так это три разных способа решения
источник

Аg

Александр gsdesign... in Laravel Framework Russian Community
Артём
Пункт 3 — только ради Accept: application/json?
Ради отсутствия редиректа и проблемы
источник

А

Артём in Laravel Framework Russian Community
А ты не знал, что ларавел умеет сам определять, редирект надо сделать или вернуть json?
источник

Аg

Александр gsdesign... in Laravel Framework Russian Community
Артём
А ты не знал, что ларавел умеет сам определять, редирект надо сделать или вернуть json?
А где это ему нужно указать, если не в Middleware ?
источник

А

Артём in Laravel Framework Russian Community
Александр gsdesign
А где это ему нужно указать, если не в Middleware ?
Он это определяет на основании запроса
источник

Аg

Александр gsdesign... in Laravel Framework Russian Community
Артём
Он это определяет на основании запроса
Он определяет на основании хедеров, которые формирует клиент. Я не могу отвечать за то, что формирует клиент. Отсюда Middleware.
источник

А

Артём in Laravel Framework Russian Community
А, 1Ц же...
источник

А

Артём in Laravel Framework Russian Community
Бида-бида
источник

Аg

Александр gsdesign... in Laravel Framework Russian Community
И да, я этого не знал (как бы в вопросе об этом явно говорится). Не проходит валидацию - пытается дёрнуть пользователя почему-то
источник

Аg

Александр gsdesign... in Laravel Framework Russian Community
Артём
А, 1Ц же...
Ну тут как-бы не только это. В ларавел вроде вообще не очень доверяют тому, что приходит от клиента. Хедерам в том числе...
источник

А

Артём in Laravel Framework Russian Community
Александр gsdesign
Ну тут как-бы не только это. В ларавел вроде вообще не очень доверяют тому, что приходит от клиента. Хедерам в том числе...
М-да
источник

А

Артём in Laravel Framework Russian Community
Т.е. даже если клиент захочет редирект, то хер ему на воротник?
источник