Size: a a a

2021 June 14

A

Artyom in Laravel Pro
Всем привет, можете помочь, мне нужно сделать валидацию роута, чтоб сразу проверялось, есть ли такой логин в бд
Я делаю так, знаю что неправильно, так вроде бы только регулярки проверяются:

Route::get('/profile/user/{login}', [MainController::class, 'getProfileUser'])->where('login', 'exists: users,login')->name('getProfileUser');

Можно ли сразу проверять параметры роута с помощью бд?
источник

PB

Pavel Buchnev in Laravel Pro
а в чем смысл?
источник

DZ

Daniil Zobov in Laravel Pro
Тебе точно нужна артисан команда-то?
Может лучше подойдет job и dispatchSync/dispatchNow?

Или еще лучше, напиши свой канал нотификаций и засылай через любой драйвер очередей.
источник

E

Evgenii in Laravel Pro
это надо для новичков
источник

ПЧ

Приятный Человек... in Laravel Pro
Ловите регуляркой. В контролере ищите, и если нет то abort(404)
источник

EG

Egor Gruzdev in Laravel Pro
источник

DZ

Daniil Zobov in Laravel Pro
проверяй в контроллере, оверхед одинаковый будет, а код - более читаемый
источник

A

Artyom in Laravel Pro
Понял, спасибо
источник

DZ

Daniil Zobov in Laravel Pro
Модель забиндить можно только если ты будешь передавать первичный ключ, чем логин у тебя вряд ли является.
источник

PB

Pavel Buchnev in Laravel Pro
Короче ребята хотят сказать, что ты в контроллере в любом случае будешь загружать модель пользователя, чтобы производить какие либо операции и в этот момент ты и будешь кидать 404 ошибку, а в роуте у тебя тупо будет доп проверка, которая смысла особого не несет.
источник

EG

Egor Gruzdev in Laravel Pro
На любое поле можно забиндить

https://laravel.com/docs/8.x/routing#customizing-the-default-key-name
источник

DZ

Daniil Zobov in Laravel Pro
интересно, не знал
источник

A

Artyom in Laravel Pro
Спасибо
источник

YS

Yaroslav Serbin in Laravel Pro
да, нужна возможность запускать с CLI в sync и из контроллеров в очередях. Я создал джобу и из команды её дёргаю. Смутило то, что треть документации про artisan команды содержит пример про параметр queue и я подумал, что может он через какой-то трейт где-то обрабатывается и происходит магия.
источник

DZ

Daniil Zobov in Laravel Pro
Артисан команды не шедулятся. Ты сам определяешь в handle что ей делать. Джобы - да.
источник

GT

Grigory Tumakov in Laravel Pro

Artisan::call('mail:send', [
   'user' => 123,
   '--queue' => 'sms'
]);


Ты про это?
источник

GT

Grigory Tumakov in Laravel Pro
Да, можно, можно настроить, чтобы в роутах искался параметр не по id , а по произвольному полю
источник

GT

Grigory Tumakov in Laravel Pro
источник

YS

Yaroslav Serbin in Laravel Pro
Да, по этому примеру не понятно в чём смысл из контроллера передавать имя очереди в команду, если команда не работает с очередью. Если в команде идёт вызов джобы, в которую устанавливается имя очереди, то зачем это команде, если можно сразу вызвать задиспатчить джобу в нужную очередь
источник

GT

Grigory Tumakov in Laravel Pro
Тогда тебе надо Artisan::queue использовать
источник