如何在 Laravel 中正确解析 url?
How to resolve urls correctly in Laravel?
我有 url 的产品详细信息(域。com/productdetail/1/name-of-product),当我单击 "about us" 页面时仍然在此 url,我收到错误消息 "this url doesnt exist"(域。com/productdetail/1/about-us)。我怎样才能让 url 正确解析到域。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)
.
的末尾链接
最好将路由作为命名路由。
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>
按照@jitheshJose 的回答使用别名可以解决您的问题,但我认为您的问题就这么简单:
您在页面 "domain.com/productdetail/1/name-of-product" 上并且有一个 link 和 href="about-us"
。
单击此 link 时,将导致 "domain.com/productdetail/1/about-us"。
要解决此问题,请将 href 中的 link 更改为 href="/about-us"
。
为了更好地理解这里发生的事情,请查看相对 link 和绝对 link 之间的区别。
这是您可以使用的选项。
Route::get('product-detail/{id}/{pro_name}', [
'as' => 'product.view',
'uses' => 'HomeController@detailPro',
]);
Route::get('about-us', [
'as' => 'about'
], function(){
return View('about');
});
Link:
<a href="{{route('about')}}">About</a>
<a href="{{route('product.view',['id' => $id, 'pro_name' => 'name_of_product'])}}">My Product</a>
我有 url 的产品详细信息(域。com/productdetail/1/name-of-product),当我单击 "about us" 页面时仍然在此 url,我收到错误消息 "this url doesnt exist"(域。com/productdetail/1/about-us)。我怎样才能让 url 正确解析到域。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)
.
最好将路由作为命名路由。
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>
按照@jitheshJose 的回答使用别名可以解决您的问题,但我认为您的问题就这么简单:
您在页面 "domain.com/productdetail/1/name-of-product" 上并且有一个 link 和 href="about-us"
。
单击此 link 时,将导致 "domain.com/productdetail/1/about-us"。
要解决此问题,请将 href 中的 link 更改为 href="/about-us"
。
为了更好地理解这里发生的事情,请查看相对 link 和绝对 link 之间的区别。
这是您可以使用的选项。
Route::get('product-detail/{id}/{pro_name}', [
'as' => 'product.view',
'uses' => 'HomeController@detailPro',
]);
Route::get('about-us', [
'as' => 'about'
], function(){
return View('about');
});
Link:
<a href="{{route('about')}}">About</a>
<a href="{{route('product.view',['id' => $id, 'pro_name' => 'name_of_product'])}}">My Product</a>