【问题标题】:Laravel - How I Pass Variable Into Blade's Section In One Line?Laravel - 我如何在一行中将变量传递到刀片的部分?
【发布时间】:2019-10-05 10:28:46
【问题描述】:

如何使用单行方法将变量传递给刀片命令“@section”?我有这个:

@section('title', 'Hello')

现在我想要类似的东西

@section('title', 'Hello {{ $user->name}} foo') // doesn't work
// or
@section('title', 'Hello ' . {{ $user->name}} . ' foo') // doesn't work
// or
@section('title', 'Hello ' . htmlspecialchars($user->name) . ' foo') // this works
// or
@section('title')Hello {{ $user->name }} foo @endsection // this works

最后两个工作正常,但我不想在刀片模板中使用纯 php,也不想使用 @endsection 作为标题。

我该怎么做?甚至有可能还是我应该选择两种解决方案之一?

【问题讨论】:

  • Blade 不是 Twig,它的语法非常接近 PHP 语法。您只有主要语句的指令(if、for、foreach...),那么它就是 PHP。

标签: php laravel laravel-blade


【解决方案1】:

不要在刀片指令中使用刀片回显,它们已经是 php 代码

去掉双花括号,全部用双引号括起来

@section('title', "Hello $user->name foo")

这是尽可能短的

【讨论】:

  • 谢谢。这似乎很好,我必须使用普通的 php。
【解决方案2】:

也许这就是你要找的东西

@section('title')
 Hello, {{ $user->name}}
@endsection

这个怎么样

@section('title', 'Hello ' . auth()->user()->name )

【讨论】:

  • 是的,这是我的 4 个示例中的最后一个。但我不喜欢标题的“长期方法”。仅仅几句话就感觉像是“矫枉过正”。它没有“清晰的外观”。
  • 哦,我错过了。
  • 这也是普通的php。但似乎我别无选择。谢谢!
【解决方案3】:

您可以像这样删除花括号:

@section('title', 'Hello ' . $user->name . ' foo') // This should work

【讨论】:

  • 是的,看来我必须使用普通的php。谢谢。
【解决方案4】:
@section('title', 'whatever your string')

您需要做的就是格式化一个刀片支持的字符串。

【讨论】:

    猜你喜欢
    • 2022-11-02
    • 2018-08-15
    • 2022-01-01
    • 1970-01-01
    • 2018-08-16
    • 2018-05-15
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多