将数组从控制器传递到Laravel中的视图

时间:2017-01-10 17:04:45

标签: php arrays laravel

我是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)

我不知道我在哪里弄错了。请帮忙

3 个答案:

答案 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的基础知识”,并学习如何调试。