【问题标题】:How to use url with parameter in blade Laravel如何在刀片 Laravel 中使用带参数的 url
【发布时间】: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。请查看TourAsking

标签: laravel url routes stylesheet blade


【解决方案1】:

尝试使用action helper:

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

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

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

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

在您的变体中:

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

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

【讨论】:

    猜你喜欢
    • 2019-07-12
    • 2021-07-16
    • 1970-01-01
    • 2016-09-22
    • 2020-04-12
    • 2021-07-27
    • 1970-01-01
    • 2016-07-12
    • 2016-12-24
    相关资源
    最近更新 更多