Laravel 4 Blade @include变量

use*_*781 27 php blade laravel-4

我试图include用Laravel刀片,但问题是它无法传递变量.这是我的示例代码:

file_include.blade.php

<?php
  $myvar = "some text";
Run Code Online (Sandbox Code Playgroud)

main.blade.php

@include('file_include')
{{$myvar}}
Run Code Online (Sandbox Code Playgroud)

当我运行该文件时,它返回错误"Undefined variable:myvar".那么,我如何将包含文件中的变量传递给主文件?

谢谢.

Ken*_*nny 53

为什么要将它从包含传递给调用模板?如果你在调用模板中需要它,在那里创建它,然后将它传递到包含的模板,如下所示:

@include('view.name', array('some'=>'data'))
Run Code Online (Sandbox Code Playgroud)

以上代码片段来自http://laravel.com/docs/templates


Erc*_*anE 8

不幸的是,Laravel Blade引擎不支持您的预期!但是有点传统的方式可以实现这一点!

解决方案1 - 没有Laravel Blade Engine

第一步:

file_include.blade.php
Run Code Online (Sandbox Code Playgroud)

file_include.php
Run Code Online (Sandbox Code Playgroud)

步骤b:

main.blade.php

<?php 
     include('app/views/file_include.php')
?>
{{$myvar}}
Run Code Online (Sandbox Code Playgroud)

解决方案2Laravel Blade Engine

routes.php

$data = array(
'data1'         => "one",
'data2'         => "two",
);

View::share('data', $data); 
Run Code Online (Sandbox Code Playgroud)

Any View像这样访问$ data数组

{{ $data['data1'] }}
Run Code Online (Sandbox Code Playgroud)

产量

one
Run Code Online (Sandbox Code Playgroud)


小智 0

在这种情况下,$myvarn 仅在 include 调用的本地范围内可用。

为什么不直接从控制器发送变量?