Laravel:如何使用Request :: path()检查动态URL

时间:2017-08-08 10:14:03

标签: php laravel laravel-5

我试图显示一个基于网址的搜索框,用于特定路线,它将显示搜索框,否则它将无法显示。因为我使用了Request::path()。但问题是某些路线它不起作用。 假设我有两条路线,例如

Route::get('products','abcontroller@index');
Route::get('product/{name}','abcontroller@searchProduct');

现在,如果我使用

 @if(Request::path() == 'products' || Request::path() == 'product/{name}')
  // something print
@endif

对于products路线,我可以看到搜索框,但product/{name}我无法解决问题。

2 个答案:

答案 0 :(得分:2)

更好的想法是通过将值传递给视图来通过控制器本身来处理这个问题。这将有助于更好的封装,因为您的布局不需要知道任何路由。

如果您默认显示搜索栏,请使用显示,如果存在值。如果仅显示某些页面,则仅在值实际存在时显示。

答案 1 :(得分:1)

Route::get('products',['as' => 'product.index', 'uses' => 'abcontroller@index']);
Route::get('product/{name}',['as' => 'product.name', 'uses' => 'abcontroller@searchProduct']);

使用

@if(Route::is('product.*')
// something print
@endif

希望可以帮到你