【问题标题】:How do I load a css based on laravel blade parameters?如何根据 laravel 刀片参数加载 css?
【发布时间】:2019-12-12 22:48:16
【问题描述】:

我有这条路线:

Route::get('/{language}/{housingType}/{housingUrl}', 'HousingInfoController@index');

示例:http://localhost/project/public/es_ES/H/this-is-housing-url

有时它可以有一个像这样的参数: http://localhost/project/public/es_ES/H/this-is-housing-url?group=ESQ

然后在我的控制器上检查这个参数是否存在:

$group = '';
if ($request->input('group')) {
    $group = $request->input('group');
}

并将其发送到视图:

return view('pages.HousingInfo.index', ['group' => $group]);

在我的 HousingInfo 视图中我这样做:

@section('group', $group)

我的 HousingInfo 视图也是从一个布局扩展而来的,该布局包括一个头部,它是一个带有标题、描述、元标记以及 css 的文件。 我有一个:

@yield('group')

所以我可以知道在 url 上发送了哪个参数。

我的问题是我不能使用 IF 语句的产量来根据该参数显示一个或另一个 css,我该如何实现?

这给了我错误:

@if(@yield('group') == 'ESQ')
    <link rel="stylesheet" href="{{ asset('css/ESQ.css') }}">
@else
    <link rel="stylesheet" href="{{ asset('css/app.css') }}">
@endif

【问题讨论】:

  • @if ($group == 'ESQ') 工作吗?
  • 是的,它有效,很难我必须通过 yield 传递变量以便它被识别,现在它令人困惑
  • @yield 用于在生成的 HTML 页面上输出文本。 @yield('x') 相当于 &lt;?php echo 'Contents of section X' ?&gt;

标签: laravel laravel-blade


【解决方案1】:

试试这个。

@if (!empty($group))
    <link rel="stylesheet" href="{{ asset("css/$group.css") }}">
@else
    <link rel="stylesheet" href="{{ asset('css/app.css') }}">
@endif

如果您的组变量不为空,这将使您能够使用多 css,如果是则使用 app.css

【讨论】:

    猜你喜欢
    • 2017-05-12
    • 2020-03-28
    • 1970-01-01
    • 2015-08-09
    • 2014-03-18
    • 1970-01-01
    • 2018-08-11
    • 2014-12-20
    • 2021-01-28
    相关资源
    最近更新 更多