我試圖做include
與Laravel刀片,但問題是它不能傳遞變量。這裏是我的示例代碼:Laravel 4刀片@include變量
file_include.blade.php
<?php
$myvar = "some text";
main.blade.php
@include('file_include')
{{$myvar}}
當我運行該文件,它會返回錯誤 「未定義的變量:MYVAR」。那麼,如何將包含文件的變量傳遞給主文件呢?
謝謝。
我試圖做include
與Laravel刀片,但問題是它不能傳遞變量。這裏是我的示例代碼:Laravel 4刀片@include變量
file_include.blade.php
<?php
$myvar = "some text";
main.blade.php
@include('file_include')
{{$myvar}}
當我運行該文件,它會返回錯誤 「未定義的變量:MYVAR」。那麼,如何將包含文件的變量傳遞給主文件呢?
謝謝。
在這種scenarion $myvar
將僅適用於包括呼叫的局部範圍。
爲什麼不直接從控制器發送變量?
刀片是Laravel的模板引擎。所以請嘗試從控制器傳遞值,或者您可以在routes.php中定義它以用於測試目的。
@include用於包含子視圖。
你爲什麼要將它從包含傳遞給調用模板?如果你需要在調用模板,有創建它,然後將它傳遞到包括模板是這樣的:
@include('view.name', array('some'=>'data'))
我認爲你必須瞭解Laravel刀片變量範圍模板。使用@include
包含模板將從其父視圖(它定義的視圖)繼承所有變量。但我想你不能在你的子視圖的父範圍中使用你定義的變量。如果你想讓你的變量可用於父級,請使用View::share($variableName, $variableValue)
,它將按預期的方式適用於所有視圖。
不幸的是,Laravel Blade引擎不支持你所期望的!但是有一點傳統的方式可以實現這一點!
SOLUTION 1 - 無需Laravel Blade Engine
步驟a:
從
file_include.blade.php
到
file_include.php
步驟b:
main.blade。PHP
<?php
include('app/views/file_include.php')
?>
{{$myvar}}
SOLUTION 2Laravel Blade Engine
與
routes.php
$data = array(
'data1' => "one",
'data2' => "two",
);
View::share('data', $data);
訪問$數據陣列從Any View
這樣
{{ $data['data1'] }}
輸出
one
我建議你做一個經典的PHP需要,如果你真的想改變你的變量(然後參照自動的)
@包括用於包括子的觀點,它不該」用這種方式來加載變量。 記住這些是刀片模板,而不是常規的php文件。 –