Chernichko
@Chernichko
Учусь.

Почему не работают ссылки на локальном сервере laravel?

Развернула laravel 6 и взяла часть проект с другого проекта на laravel 5.8 и не хотят работать ссылки для Route::resource('banners', 'BannerController', ['name' => 'banners.*']);
{{ route('banners.show', ['id' => $item->id]) }}
{{ route('banners.edit', ['id' => $item->id]) }}
я ожидаю их такими

http://dreambiglittleone.local/admin/banners/5
http://dreambiglittleone.local/admin/banners/5/edit


а они у меня
/admin/banners?id=5
/admin/banners//edit?id=5


и я не понимаю в чем может быть дело....
как поправить эти ссылки?!
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Kostik_1993
Fullstack Web Developer | PHP | Laravel | Vue.js
URL Generation
Route URL Generation & Extra Parameters
In previous releases of Laravel, passing associative array parameters to the route helper or URL::route method would occasionally use these parameters as URI values when generating URLs for routes, even if the parameter value had no matching key within the route path. Beginning in Laravel 6.0, these values will be attached to the query string instead. For example, consider the following route:
Route::get('/profile/{location}', function ($location = null) {
    //
})->name('profile');

// Laravel 5.8: http://example.com/profile/active
echo route('profile', ['status' => 'active']);

// Laravel 6.0: http://example.com/profile?status=active
echo route('profile', ['status' => 'active']);


Взято как ни странно тут

Собственно так все будет работать
$banner = \App\Banner::find(1);
Route::resource('banners', 'BannerController');
echo  route('banners.show', $banner);

$photo = \App\Photo::find(1);
Route::resource('banners.photos', 'BannerPhotosController');
echo route('banners.photos.show', [$banner, $photo]);


Кстати ['name' => 'banners.*'] это лишнее, по дефолту у вас и так будет задано имя указанное первым аргументом
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы