我尝试在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)。有一种简单的方法可以做到这一点吗?
答案 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')