我是Laravel的新手并尝试将一维数组从控制器传递到视图。
这是我的控制器功能
public function onedim_array()
{
$info = array(
'firstname' => 'John',
'lastname' => 'Cena',
'from' => 'USA'
);
return view('one_dim_array', compact('info'));
}
这是我的观点文件:
<?php
foreach($info as $i)
{
echo $i['firstname'];
}
?>
它给了我以下错误:
34a7177cfbceee0b4760125499bdaca34b567c0b.php第5行中的ErrorException: 非法字符串偏移&#39;名字&#39; (视图: C:\的appserv \ WWW \ blog4 \资源\视图\ one_dim_array.blade.php)
我不知道我在哪里弄错了。请帮忙
答案 0 :(得分:6)
由于它不是多维数组,请使用此代替foreach()
:
$info['firstname']
答案 1 :(得分:0)
foreach()
允许您遍历阵列中的所有项目。并在您的代码段中
<?php
foreach($info as $i)
{
echo $i['firstname'];
}
?>
您尝试从字符串中获取索引为'firstname'
的元素(在您的示例中,它将为'John'
)。如果你想遍历所有元素并显示它们,试试这个:
foreach($info as $i)
{
echo $i;
}
或者如果要显示数组的特定元素,请尝试使用
echo $info['firstname'];
或
echo $info['lastname'];
答案 2 :(得分:0)
我认为您期望接受视图的多维数组。我认为这是你期望传递给视图的数组的值
控制器代码:
public function onedim_array()
{
$info = array(
array(
'firstname' => 'John',
'lastname' => 'Cena',
'from' => 'USA'
),
array(
'firstname' => 'John',
'lastname' => 'Doe',
'from' => 'Canada'
),
);
return view('one_dim_array', compact('info'));
}
PS。在潜水学习框架之前的建议:“首先掌握PHP的基础知识”,并学习如何调试。