Size: a a a

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

2020 June 24

С

Сергей in Laravel для начинающих
Куда уж выше кидать?)
источник

SC

Sergey Chizhik in Laravel для начинающих
Сергей
Не проще бросить нужный эксепшн?
Что значит проще? Допустим ты делаешь обёртку над каким-то api используя guzzle. Сам guzzle выкидывает тебе RequestException, который ты детализируешь например до InsufficientPermissionsException, AuthException, ValidationException и тогдалие, а дальше обрабатываешь выше как того требует логика.

В примере с контроллером исключения заворачиваются для того что бы контролировать вывод ошибки. Например, ApiException ты ещё можешь в json показать и например не логгировать, а все остальные просто отвалятся неконтролируемо с пустым ответом
источник

С

Сергей in Laravel для начинающих
Sergey Chizhik
Что значит проще? Допустим ты делаешь обёртку над каким-то api используя guzzle. Сам guzzle выкидывает тебе RequestException, который ты детализируешь например до InsufficientPermissionsException, AuthException, ValidationException и тогдалие, а дальше обрабатываешь выше как того требует логика.

В примере с контроллером исключения заворачиваются для того что бы контролировать вывод ошибки. Например, ApiException ты ещё можешь в json показать и например не логгировать, а все остальные просто отвалятся неконтролируемо с пустым ответом
Понял)
источник

С

Сергей in Laravel для начинающих
Sergey Chizhik
Что значит проще? Допустим ты делаешь обёртку над каким-то api используя guzzle. Сам guzzle выкидывает тебе RequestException, который ты детализируешь например до InsufficientPermissionsException, AuthException, ValidationException и тогдалие, а дальше обрабатываешь выше как того требует логика.

В примере с контроллером исключения заворачиваются для того что бы контролировать вывод ошибки. Например, ApiException ты ещё можешь в json показать и например не логгировать, а все остальные просто отвалятся неконтролируемо с пустым ответом
Просто, я думал, что из сервиса exception бросаешь, а в контроллере тупо его ловишь и отдаёшь месседж в респонсе
источник

SC

Sergey Chizhik in Laravel для начинающих
Не обязательно. Ты можешь и с контроллера кинуть специфический Exception, который выше будет обработан и выдан соответствующий ответ
источник

С

Сергей in Laravel для начинающих
Sergey Chizhik
Не обязательно. Ты можешь и с контроллера кинуть специфический Exception, который выше будет обработан и выдан соответствующий ответ
Выше - это где например?
источник

SC

Sergey Chizhik in Laravel для начинающих
Exception handler приложения или middleware
источник

С

Сергей in Laravel для начинающих
Так миддлвар ведь встречает запрос, выполняет с запросом что-то и шлёт дальше, он уже не ждёт назад response или exception, не?
источник

SC

Sergey Chizhik in Laravel для начинающих
Он может как и pre действия выполнять, так и post, ты сам это решаешь
источник

С

Сергей in Laravel для начинающих
Понял
источник

ДК

Дмитрий Кожанов... in Laravel для начинающих
Владислав Субботин
Больше скажу, у нас прод периодически загибается от того, что воркеры память выжрали
Так настраивать же надо. Чтобы макс_воркеров * max_memory = озу
источник

Д

Діма in Laravel для начинающих
Привет.
Подскажите пожалуйста.
Как передать переменную в роут))
return redirect()->route('thanks-for-order', ['order' => $order ]);
Route::get('/thanks-for-order/{order}', 'Frontend\MainController@thanksForOrder')->name('thanks-for-order');

В метод прилетает 14)
можно ли так чтобы
и в url видно '/thanks-for-order/14',
Можно ли как то из контроллера выслать так чтобы передать целый обьект?
Или то в сессию писать нужно?
Типо
session flash ?
источник

А

Артур in Laravel для начинающих
Діма
Привет.
Подскажите пожалуйста.
Как передать переменную в роут))
return redirect()->route('thanks-for-order', ['order' => $order ]);
Route::get('/thanks-for-order/{order}', 'Frontend\MainController@thanksForOrder')->name('thanks-for-order');

В метод прилетает 14)
можно ли так чтобы
и в url видно '/thanks-for-order/14',
Можно ли как то из контроллера выслать так чтобы передать целый обьект?
Или то в сессию писать нужно?
Типо
session flash ?
чтобы после редиректа в метод thanksForOrder попала модель, нужно настроить model binding in RouteServiceProvider
источник

R#

Reset # Alexey S. in Laravel для начинающих
накой в роуте целый обьект?
источник

Д

Діма in Laravel для начинающих
Артур
чтобы после редиректа в метод thanksForOrder попала модель, нужно настроить model binding in RouteServiceProvider
Кинул в сессию пока что)
Session::flash('order', $order); —отправил
dd(Session::get('order') ); — получил
источник

R#

Reset # Alexey S. in Laravel для начинающих
Діма
Кинул в сессию пока что)
Session::flash('order', $order); —отправил
dd(Session::get('order') ); — получил
может лучше $id ордера, который в примере 14,  а потом его из БД и достать
источник

R#

Reset # Alexey S. in Laravel для начинающих
если ордер уже сформирован и лежит в БД, зачем его полностью таскать через сессию?
источник

Д

Діма in Laravel для начинающих
Да не.. Мне всего то раз вывести подтверждение заказа.
источник

Д

Діма in Laravel для начинающих
Так я просто в view поставлю if ( если нету в сессии ордера то редиректить откуда пришел клиент)

а если есть покажу подтверждение.

Если буду в БД обращаться то там нужно проверять, есть ли у юзера этот ордер и тд)
как то так проще мне кажется
источник

ВС

Владислав Субботин... in Laravel для начинающих
Дмитрий Кожанов
Так настраивать же надо. Чтобы макс_воркеров * max_memory = озу
Повторюсь, я не в курсе, что там именно не так, но эта проблема очень давняя.
источник