将数组传递给刀片文件并访问其值
问题描述:
我刚开始学习Laravel,并且遇到了一个有关跨文件传递值的小问题。将数组传递给刀片文件并访问其值
在Routes文件中,我有以下功能。
Route::get('/', function()
{
$data = [
'first_name' => 'Jane',
'last_name' => 'Doe',
'email' => '[email protected]',
'location' => 'London'];
return View::make('hello')->with($data);
});
我传递的$data
数组到一个文件名为hello.blade.php。我想打印出这个数组中的所有值。问题是我无法遍历它们并输出其中的值。我收到错误未定义变量:数据。
这是我的刀片文件。
@extends('layouts.main')
@section('content')
@foreach ($data as $item)
<li>{{{ $item }}}</li>
@endforeach
@stop
我才知道,我可以做这样的事情return View::make('hello')->withData($data);
在路径文件,并得到它的工作。但我不喜欢追加变量名称的方式,如withData
。
有没有办法传递数组变量并从刀片文件访问它?
谢谢。
答
您传递的是单个参数,它是一个关联数组,它告诉Blade:嘿,把这个数组的键作为变量的名称,并使它们的值对应于数组中的键的值。
这意味着,您现在在您的视图中有一个变量$first_name
,其值为'Jane',值为'Doe'的变量$last_name
等等。
这将是一样的做
return View::make('hello')
->with('first_name', 'Jane')
->with('last_name', 'Doe');
你的想法。
如果你想通过数组本身,你必须告诉刀片:嘿,借此阵列,并使其在通过给定名称的视图中提供:
return View::make('hello')->with('data', $data);
现在你拥有了整个阵列可用在你的视图中由变量$data
。
太棒了!我知道了。谢谢。 – Isuru 2014-10-18 22:18:19