【问题标题】:Laravel - Nested blade echosLaravel - 嵌套刀片回声
【发布时间】:2017-01-10 00:42:48
【问题描述】:

我在标题部分的样式表引用中使用刀片回显。这是为了为网站的皮肤指定一个 CSS。

原行是:

<link href="{{ asset("/dist/css/skins/skin-default.min.css"}}" rel="stylesheet" type="text/css\" />

我正在为每个用户获取一个皮肤设置,并希望将其插入该行以更改用户想要的皮肤。我已将设置从视图服务提供程序中提取到变量中。

$view->with('visualSkin', Auth::user()->visualSkin);

这样我在渲染所有视图时设置了 $visualSkin。

如果用户没有设置,我如何将其插入到上面的资产 href 中并将其默认为设置?

我可以通过以下方式调用变量或设置默认值:

{{ $visualSkin or "skin-default" }}

但是,我怎样才能将该部分与我的资产 href 内联? 这样的事情不起作用:

<link href="{{ asset("/dist/css/skins/{{ $visualSkin or "skin-red-trim" }}.min.css"}}" rel="stylesheet" type="text/css\" />

我也尝试了一些 php 技巧,但是由于将其插入 php echo 时是刀片格式,因此刀片进程不会呈现它。

你可以嵌套刀片回声吗?
我错过了一些字符转义吗?

【问题讨论】:

    标签: php laravel blade laravel-blade


    【解决方案1】:

    您不需要嵌套!在刀片标签内,PHP 正在运行,因此您可以自然地连接字符串。

    <link href="{{ asset("/dist/css/skins/" . $visualSkin or "skin-red-trim" . ".min.css")}}" rel="stylesheet" type="text/css\" />
    

    请注意,缺少 ) 以关闭 asset( 函数。


    使用{{ 'something' }} 同类型:echo 'something'

    所以你可以用回声做任何事情,你可以在刀片回声标签上做。

    【讨论】:

    • 好的。一个深夜入睡的错误。我使用“+”而不是“。”为连接。 ) 丢失只是发布此内容时的复制/粘贴问题。它现在在代码中。现在的错误是 $visualSkin 没有定义。我以为“或”会解决这个问题?还是我需要与isset确认?
    • 如果我错了,请纠正我,但标准 PHP 中的 $visualSkin or "skin-red-trim" 不会评估为布尔值(在这种情况下,是真的)?不是实际价值?我想你想要$visualSkin ?: "skin-red-trim"
    • 应该是正确的。如果单独使用“或”,它将是普通的刀片模板。现在它是刀片内部的 PHP,“或”将无法按预期工作。
    • 好的。在我的视图提供者中,我正在检查用户是否经过身份验证。如果是这样,请获取他们的设置,包括 $visualSkin。当您点击一个没有用户登录但仍在引用该资产 href 的页面时,它会引发错误,因为从未设置过 $visualSkin。我想我可以将该变量默认为 $visualSkin = false; ?这将初始化它。
    猜你喜欢
    • 2017-01-02
    • 2020-01-01
    • 2018-05-06
    • 2015-12-01
    • 2015-03-17
    • 1970-01-01
    • 2016-05-17
    • 2021-05-05
    • 2022-01-23
    相关资源
    最近更新 更多