Как правильно разрешить URL в Laravel? - PullRequest
2 голосов
/ 25 октября 2019

У меня есть URL-адрес для подробной информации о продукте (domain.com/productdetail/1/name-of-product). Когда я нажимаю на страницу «о нас», находясь в этом URL-адресе, я получаю сообщение об ошибке «этот URL-адрес не существует» (domain.com/productdetail/1/about-us). Как я могу получить URL для правильного разрешения на domain.com/about-us

Это мой продуктПодробный маршрут

Route::get('/productDetail/{id}/{pro_name}', 
'HomeController@detailPro');

Это маршрут о нас

Route::get('about-us', function(){
return View('about');
});

Я бы хотел получить точно маршрут (domain.com/about-us) вместо цепочки в конце текущего URL (domain.com/productdetail/1/about-us).

Ответы [ 3 ]

5 голосов
/ 25 октября 2019

Лучше указывать маршруты в качестве именованных маршрутов.

Route::get('/productDetail/{id}/{pro_name}','HomeController@detailPro')->name('product.view');

Route::get('about-us', function(){
  return View('about');
})->name('about-us');

Называть определенный маршрут как

 <a href="{{route('about-us')}}">about us</a>
 <a href="{{route('product.view',['id' => $id, 'pro_name' => 'name_of_product'])}}">View Product</a>
0 голосов
/ 25 октября 2019

Вот опция, которую вы можете использовать.

    Route::get('product-detail/{id}/{pro_name}', [
        'as' => 'product.view',
        'uses' => 'HomeController@detailPro',
    ]);

    Route::get('about-us', [
        'as' => 'about'
    ], function(){
          return View('about');
    });

Ссылка:

 <a href="{{route('about')}}">About</a>
 <a href="{{route('product.view',['id' => $id, 'pro_name' => 'name_of_product'])}}">My Product</a>
0 голосов
/ 25 октября 2019

Использование псевдонима как ответа @jitheshJose решит вашу проблему, но я думаю, что ваша проблема так проста:

Вы на странице "domain.com/productdetail/1/name-of-продукт "и у вас есть ссылка с href="about-us".

при нажатии на эту ссылку, это приведет к тому, что" domain.com/productdetail/1/about-us".

исправьте это, измените ссылку в href на href="/about-us".

Чтобы лучше понять, что здесь происходит, посмотрите разницу между относительной и абсолютной ссылками.

...