【问题标题】:Laravel Blade Passing Variables to Other BladesLaravel Blade 将变量传递给其他刀片
【发布时间】:2018-03-14 22:58:20
【问题描述】:

我已经尝试了一些方法来让它发挥作用。我在看这个—— Laravel Blade - pass variable via an @include or @yield -- 关于如何在刀片之间传递变量的问题,但我似乎无法让它工作!

我有一个视图调用我的标题视图(在 /resources/views/layouts/frontendbasic.blade.php 中):

@include('common/head', array('url'=>'www.url.com'))

在页眉刀片中(在 /resources/views/common/head.blade.php 中)我这样调用该变量:

<meta property="og:url" content="{{ $url }}" />

我得到了错误:

Undefined variable: url
(View: ...\resources\views\common\head.blade.php) 
(View: ...\resources\views\common\head.blade.php) 
(View: ...\resources\views\common\head.blade.php)

我想知道我做错了什么?

【问题讨论】:

  • 我试图复制你的问题,创建一些测试页面并像你一样通过变量,它对我有用。你使用的是什么版本的 Laravel?

标签: php laravel


【解决方案1】:

正确的做法是通过控制器传递一个变量:

return view('view.path', [
     'url' => 'www.url.com'
]);

但是,请尝试如下:

@include('common.head', ['url' => 'www.url.com'])

【讨论】:

  • 谢谢!我发誓我也试过括号!但我想也许我有一些蹩脚的类型。太感谢了!这是有效的
  • @TurtleBo 括号有效吗?或者你跨控制器做?
  • 我使用了括号。但是我遇到了更多问题,所以我可能会尝试在控制器上执行此操作。我真的很感激!
  • @include 使用点语法,而不是斜线。
【解决方案2】:

有很多方法可以做到这一点。您还可以使用“compact”和“with”函数将变量传递给控制器​​和刀片中的刀片。

在控制器中

  $info = 23; /* variable you want to pass into blade */ 

  return view('view.path',compact('info'));
  OR
  return view('view.path')->with('info'=>$info);

在视图中

 @include('view.path',compact('variable_name'));
 OR
 @include('view.path')->with('key' => $value);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-12
    • 2022-06-30
    • 2019-08-12
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    相关资源
    最近更新 更多