Laravel Blade将变量传递给其他刀片

时间:2018-03-14 22:58:21

标签: php laravel

我尝试了一些尝试让它发挥作用。我在看这个 - 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)

我想知道我做错了什么?

2 个答案:

答案 0 :(得分:4)

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

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

然而,请尝试如下:

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

答案 1 :(得分:1)

有很多方法可以做到这一点。你也可以使用&#34; compact&#34;和#34;与&#34;将变量传递给控制器​​和刀片中的刀片的功能。

控制器中的

  $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);