如何在刀片Laravel中使用带参数的url

时间:2017-06-06 20:53:19

标签: laravel url routes stylesheet blade

我尝试在master.blade.php中为不同的页面使用不同的样式表。当我使用简单的路线时,它可以工作。

@if ( Request::path() == 'videos/alpes')
   <link rel="stylesheet" href="{{ URL::asset('/css/style-vid.css') }}" type="text/css" media="all">
@elseif (Request::path() == 'texts')
   <link rel="stylesheet" href="{{ URL::asset('/css/style-lir.css') }}" type="text/css" media="all">
@else
   <link rel="stylesheet" href="{{ URL::asset('/css/style-all-together.css') }}" type="text/css" media="all"> 

但我找不到在@if陈述中使用带参数的路线的方法,即

Route::get('/videos/{video}', 'VideoController@show'); 

我尝试为所有视频而不仅仅是其中一个(alpes)。有一种简单的方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:0)

尝试使用action helper

  

action函数为给定的控制器操作生成URL。您不需要将完整的命名空间传递给控制器​​。而是相对于App\Http\Controllers命名空间传递控制器类名:

     

$url = action('HomeController@getIndex');

     

如果方法接受路由参数,您可以将它们作为方法的第二个参数传递:

     

$url = action('UserController@profile', ['id' => 1]);

在你的变体中:

@if(Request::url() == action('VideoController@show', ['video' => $video]))
    //some code
@endif

您可以将代码Request::path() == 'videos/alpes'更改为Request::is('video/alpes')