【问题标题】:How can I send parameter with {{ }} in laravel's @include()如何在 laravel 的 @include() 中使用 {{ }} 发送参数
【发布时间】:2021-08-24 22:24:36
【问题描述】:

我想在 Laravel 的 @include() 中将路由作为参数发送。 我正在尝试使用 {{ }} 发送参数以将其作为 href 值,但我收到错误消息。有没有办法将'{{}}'放入字符串中?

这是导致错误的原因:

@include('includes.content.single-article', ['href' => '{{ route('article') }}'])

在 single-article.blade.php 中应该是这样的:

<a class="card-link btn btn-warning" href="{{ $href }}">more<span class="icon icon-plus"></span></a>

它应该像这样工作:

    <a class="card-link btn btn-warning" href="{{ route('article') }}">more<span class="icon icon-plus"></span></a>

我得到的错误:

解析错误 语法错误,意外的“文章”(T_STRING),应为“]”

【问题讨论】:

  • 通过使用@include,您已经在刀片解析器/php 块中,因此只需删除路由周围的{{ }}
  • 基于official documentation,你不应该在PHP数组中使用{{ }}@include('includes.content.single-article', ['href' =&gt; route('article')])
  • 我猜你们两个中的一个可以回答,因为这就是问题
  • 是的!删除参数中的{{ }} 可以解决问题。非常感谢!

标签: php html laravel


【解决方案1】:

您不需要发送变量。 @include 是“复制/粘贴”(与 @extend 相同)。

这样做:

@php($href=route("article"))
@include("includes.content.single-article")

仅此而已。现在您的刀片 includes.content.single-article 知道 $href 的值。

如果你真的只需要这个刀片的变量

@include("catalog.task.foo", ["href" => route("purchase.provider")])

当您使用刀片指令时,您处于PHP 上下文中,如果您不需要字符串,请不要使用"

你可以

@include("catalog.task.foo", ["href" => 45+58])

并且会做数学题

【讨论】:

  • 有区别。通过传递变量,它将仅在包含的视图中可用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-16
  • 2018-04-23
  • 2011-10-11
  • 2015-02-21
  • 2021-10-10
  • 2016-01-23
  • 2018-12-23
相关资源
最近更新 更多