如何在刀片 Laravel 中使用带参数的 url
Posted
技术标签:
【中文标题】如何在刀片 Laravel 中使用带参数的 url【英文标题】:How to use url with parameter in blade Laravel 【发布时间】:2017-11-08 00:56:27 【问题描述】:我尝试在我的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)。有没有简单的方法来做到这一点?
【问题讨论】:
欢迎来到 Stack Overflow。请查看Tour 和Asking。 【参考方案1】:尝试使用action helper:
动作函数为给定的控制器动作生成一个 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')
【讨论】:
以上是关于如何在刀片 Laravel 中使用带参数的 url的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 4 中的 @if 语句(刀片)中获取当前 URL?