Failed to load resource: the server responded with a status of 404 (Not Found)
Имеется такой маршрут:
Route::get('/product/{id}',[MainController::class, 'product'])->name('product');
И такая разметка, вызывающая этот маршрут:
<a class="product_card_list_link_grid" href="{{route('product',['id'=> $product['id']])}}">
<img class="product_card_list_image" src="assets/img/product/{{$product['image_product']}}" alt="{{$product['name_product']}}">
</a>
Метод контроллера, который отображает представление:
public function product($id)
{
$array_select_product = Product::where('products.id', '=', $id)->join('distributors', 'distributors.id', '=', 'products.distributor_id')->join('genres', 'genres.id', '=', 'products.genre_id')->get(['products.*', 'distributors.image_distributor', 'genres.name_genre']);
return view('product', [
'array_select_product' => $array_select_product
]);
}
И вроде все хорошо, страницу открывает, данные из бд выводит, но стили, картинки, скрипты, в общем все ресурсы не загружаются. При этом если изменить маршрут на такой:
Route::get('/{id}',[MainController::class, 'product'])->name('product');
А вызывать его так:
<a class="product_card_list_link_grid" href="/$product['id']">
То все отлично работает. Подскажите пожалуйста в чем проблема и как мне ее исправить. А так же если есть другие ошибки укажите на них.
Ответы (2 шт):
В общем, я нашел решение своей проблемы, нужно было ссылки на ресурсы писать так:
<img class="logo_image" src="{{URL::asset('assets/img/joystick_game_3819.ico')}}" alt="Logo">
А я писал так:
<img class="logo_image" src="assets/img/joystick_game_3819.ico" alt="Logo">
Это относится ко всем подключаемым ресурсам.
Не ответ на вопрос. Но хотел бы дать совет про реализацию кода который касается запросов к базе данных, и не только.
- Зачем использовать
join? Если вlaravelесть возможность отношений (relationship). - Работать напрямую с базой данных в контроллерах очень плохой пример кода.
Код надо делиь как минимум на 3 части.
- В контроллерах нужно оставить только бизнес логику приложения.
- Для работы с базой данных, из хороших подходов можно взять например
repository. Вот пример для реализации кода с помощю репозиториев. Можете погуглить, там найдете все что нужно. - Для остальных монипуляций кода можно использовать сервисы. Тоесть та логика кода, который не относиться к базе данных и к бизнес логике приложения.
- Всегда делите код на мелкие части. Что бы потом можно было легче разобрать код. И можно было повторно использовать код там где этому будет нужда.