Size: a a a

Laravel для начинающих

2021 March 11

H

HahahImFaus in Laravel для начинающих
Привет, как в Laravel Breeze можно сделать вход по логину, а не почте?
источник

BF

Benjamin Franklin in Laravel для начинающих
Значит как и post. Ок попробую, спасибо.
источник

AH

Andrey Helldar in Laravel для начинающих
Benjamin Franklin
Значит как и post. Ок попробую, спасибо.
Для валидатора нет разницы какого типа запрос - он всё-равно в request попадёт.
источник

AH

Andrey Helldar in Laravel для начинающих
Benjamin Franklin
Как можно валидировать GET запрос? Нигде не нашел(
А "валидировать" что нужно? $mask? Это обращение к модели или что-то ещё?
источник

R#

Reset # Alexey S. in Laravel для начинающих
Andrey Helldar
Для валидатора нет разницы какого типа запрос - он всё-равно в request попадёт.
а в апи роутах же нельзя так ?
только Validator::make ?
источник

BF

Benjamin Franklin in Laravel для начинающих
Andrey Helldar
А "валидировать" что нужно? $mask? Это обращение к модели или что-то ещё?
Валидировать $mask.
Пользователь проходит по ссылке, например
domain.com/shop/shoes
Дальше в контроллере ищутся данные в базе с категорией shoes и выводятся в представление.
источник

AH

Andrey Helldar in Laravel для начинающих
Reset # Alexey S.
а в апи роутах же нельзя так ?
только Validator::make ?
Можно. Разницы нет
источник

R#

Reset # Alexey S. in Laravel для начинающих
Andrey Helldar
Можно. Разницы нет
А вот что написано

If validation fails, a redirect response will be generated to send the user back to their previous location. The errors will also be flashed to the session so they are available for display.

получается если я пришел по апи меня назад вернет, но у меня то нету "назад"
источник

R#

Reset # Alexey S. in Laravel для начинающих
Либо отдаст 422 как я вижу в доке
источник

AH

Andrey Helldar in Laravel для начинающих
Benjamin Franklin
Валидировать $mask.
Пользователь проходит по ссылке, например
domain.com/shop/shoes
Дальше в контроллере ищутся данные в базе с категорией shoes и выводятся в представление.
Понял. Это ссылка на модель.

public function getShopByMask(Mask $mask)
{
  /// ...

 return view('your-template')->with(compact('mask'));
}


где Mask - это модель. Будет произведён поиск по базе. Если найдена, отдаст дальше в код. Если нет, вернёт 404.

Нюанс - по-умолчанию ищет по primaryKey. Если ты его вручную не менял, то это id.
Так как у тебя slug (судя по примеру здесь), то определение роута можно дополнить так: shop/{mask:slug}, где slug - имя колонки в базе, по которой будет производиться поиск.
источник

R#

Reset # Alexey S. in Laravel для начинающих
но если мне нужен кастом, как стандартное сообщение об ошибке в АПИ - такое уже не прокатит, верно ?
источник

BF

Benjamin Franklin in Laravel для начинающих
Andrey Helldar
Понял. Это ссылка на модель.

public function getShopByMask(Mask $mask)
{
  /// ...

 return view('your-template')->with(compact('mask'));
}


где Mask - это модель. Будет произведён поиск по базе. Если найдена, отдаст дальше в код. Если нет, вернёт 404.

Нюанс - по-умолчанию ищет по primaryKey. Если ты его вручную не менял, то это id.
Так как у тебя slug (судя по примеру здесь), то определение роута можно дополнить так: shop/{mask:slug}, где slug - имя колонки в базе, по которой будет производиться поиск.
Спасибо
источник

AH

Andrey Helldar in Laravel для начинающих
Reset # Alexey S.
А вот что написано

If validation fails, a redirect response will be generated to send the user back to their previous location. The errors will also be flashed to the session so they are available for display.

получается если я пришел по апи меня назад вернет, но у меня то нету "назад"
Не, валидация дропает. Там проверка под капотом откуда пришёл.
Если Accept: application/json, то получишь данные валидатора, иначе на предыдущую страницу.

https://github.com/laravel/framework/blob/5ba3d0b8c660ce36ac6325a6edba20b9e4ffb333/src/Illuminate/Foundation/Exceptions/Handler.php#L416-L425
источник

AH

Andrey Helldar in Laravel для начинающих
Reset # Alexey S.
но если мне нужен кастом, как стандартное сообщение об ошибке в АПИ - такое уже не прокатит, верно ?
Кастом чего? Всмысле? Где? Не понял.
источник

R#

Reset # Alexey S. in Laravel для начинающих
Andrey Helldar
Кастом чего? Всмысле? Где? Не понял.
Смотри, у меня стандартный ответ API

{
succcess:false,
error_code:422,
message: "Message"
}
источник

AH

Andrey Helldar in Laravel для начинающих
Reset # Alexey S.
А вот что написано

If validation fails, a redirect response will be generated to send the user back to their previous location. The errors will also be flashed to the session so they are available for display.

получается если я пришел по апи меня назад вернет, но у меня то нету "назад"
источник

AH

Andrey Helldar in Laravel для начинающих
Reset # Alexey S.
Смотри, у меня стандартный ответ API

{
succcess:false,
error_code:422,
message: "Message"
}
А. Кастомный ответ.
источник

R#

Reset # Alexey S. in Laravel для начинающих
сейчас я делаю все через Validator::make
и если ошибка = то через renderable exception вывожу ошибку
источник

R#

Reset # Alexey S. in Laravel для начинающих
Я могу как то это перевесить на форм реквест ?
а то я сейчас делаю валидацию в DTO
источник

AH

Andrey Helldar in Laravel для начинающих
Reset # Alexey S.
сейчас я делаю все через Validator::make
и если ошибка = то через renderable exception вывожу ошибку
Делай по аналогии: https://github.com/andrey-helldar/api-response/blob/main/src/Concerns/Exceptions/Laravel/Web.php

Дополни стандартный хендлер своим выводом и всё.
источник