Size: a a a

2020 May 04

AM

Alexey Mihaylov in Laravel Pro
Vadim
В RouteServiceProvider есть namespace по умолчанию, который ларавел цепляет для твоих контроллеров. Ты уверен, что у тебя правильный путь до контроллера получается?
Да, там  protected $namespace = 'App\Http\Api';
источник

V

Vadim in Laravel Pro
Alexey Mihaylov
Да, там  protected $namespace = 'App\Http\Api';
Отключи миддлвары для апи и попробуй еще
источник

D

Dymon in Laravel Pro
Alexey Mihaylov
»ShowProductAction __invoke(Product $product) как то так у тебя?

Да
покажи все таки полностью ShowProductAction. и вот это еще можно добавить в app/Providers/AppServiceProvider.php
public function boot()
   {
       Log::info('====', [app()->environment(), now(), request()->getRequestUri()]);
       DB::connection()->listen(function ($query) {
           Log::info($query->time, [$query->sql, json_encode($query->bindings)]);
       });
   } проверить есть ли запросы в базу и какие
источник

AM

Alexey Mihaylov in Laravel Pro
Dymon
покажи все таки полностью ShowProductAction. и вот это еще можно добавить в app/Providers/AppServiceProvider.php
public function boot()
   {
       Log::info('====', [app()->environment(), now(), request()->getRequestUri()]);
       DB::connection()->listen(function ($query) {
           Log::info($query->time, [$query->sql, json_encode($query->bindings)]);
       });
   } проверить есть ли запросы в базу и какие
Там показывать нечего. Сейчас попробую.
источник

AM

Alexey Mihaylov in Laravel Pro
»добавить в app/Providers/AppServiceProvider.php
public function boot()

Добавил. Вообще никаких логов.
источник

EK

Evgeniy Kuvshinov in Laravel Pro
Developer
Приветствую. Подскажите пожалуйста допустим у меня есть запрос в переменной $query1;
Я хочу сделать DB::table(DB::raw($query1.' as a')->get()
DB::statement$query) только следи чтобы не было sql injection
источник

EK

Evgeniy Kuvshinov in Laravel Pro
Alexey Mihaylov
Ребят, помогите с роутом, пожалуйста.

Есть роут: Route::get('/products/{product:slug}', 'Product\ShowProduct\ShowProductAction')->name('show'); .
Когда шлю GET на  localhost/api/products/new-product-first, получаю 404. Хотя продукт с данным слагом существует. Остальные роуты закомментировал.
убери slug
убедись что {product} подходит под regexp prefix https://laravel.com/docs/7.x/routing#route-group-name-prefixes
источник

EK

Evgeniy Kuvshinov in Laravel Pro
далее посмотри у модели продукта все ли ок там
ну и очистку кэша
источник

AM

Alexey Mihaylov in Laravel Pro
Evgeniy Kuvshinov
убери slug
убедись что {product} подходит под regexp prefix https://laravel.com/docs/7.x/routing#route-group-name-prefixes
Сейчас
источник

EK

Evgeniy Kuvshinov in Laravel Pro
ну и этот раздел https://laravel.com/docs/7.x/routing#explicit-binding убедись что продукт правильно забинжен
источник

EK

Evgeniy Kuvshinov in Laravel Pro
я бы отключил пока биндинг модели и в контроллере просто принимал request
источник

EK

Evgeniy Kuvshinov in Laravel Pro
и то что ввел человек чтобы убедится что все ок
источник

EK

Evgeniy Kuvshinov in Laravel Pro
а потом уже думал нужен ли биндинг (я лично им не пользуюсь, но мб кто другие его пользуют)
источник

EK

Evgeniy Kuvshinov in Laravel Pro
возможно 404 получаешь потому что биндинг не может найти продукт до контроллера не доходит очередь
источник

AM

Alexey Mihaylov in Laravel Pro
Evgeniy Kuvshinov
убери slug
убедись что {product} подходит под regexp prefix https://laravel.com/docs/7.x/routing#route-group-name-prefixes
Без слага по {product} работает нормально
источник

EK

Evgeniy Kuvshinov in Laravel Pro
Alexey Mihaylov
Без слага по {product} работает нормально
ну вот ты понимаешь куда копать
источник

AM

Alexey Mihaylov in Laravel Pro
Evgeniy Kuvshinov
ну вот ты понимаешь куда копать
Если честно, не очень
источник

EK

Evgeniy Kuvshinov in Laravel Pro
смотри в сторону биндинга и доку почитай)
источник

EK

Evgeniy Kuvshinov in Laravel Pro
там ты перадешь имя продукта в запросе
источник

EK

Evgeniy Kuvshinov in Laravel Pro
надо в модели продукта указать метод что по slug это title Product
источник