Задать вопрос
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


и я не понимаю в чем может быть дело....
как поправить эти ссылки?!
  • Вопрос задан
  • 262 просмотра
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
@Kostik_1993
Web Developer
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.*'] это лишнее, по дефолту у вас и так будет задано имя указанное первым аргументом
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы