在Laravel中如何从控制器传递数组到视图?

3

我是新手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'];
}

?>

我得到以下错误:

ErrorException in 34a7177cfbceee0b4760125499bdaca34b567c0b.php line 5: 非法字符偏移量 'firstname' (视图文件: C:\AppServ\www\blog4\resources\views\one_dim_array.blade.php)

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

3个回答

7

由于它不是多维数组,因此请改用以下方法而不是foreach()

$info['firstname']

0

foreach() 允许您遍历数组中的所有项。在您的代码片段中

<?php

foreach($info as $i)
{
    echo $i['firstname'];
}

?>

你试图从一个字符串中获取索引为'firstname'的元素(在你的例子中是'John')。如果你想遍历所有元素并显示它们,请尝试这样做:

foreach($info as $i)
{
    echo $i;
}

或者如果你想显示数组中的特定元素,请尝试这个

echo $info['firstname'];

或者

echo $info['lastname'];

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'));
}

提示:在深入学习框架之前,建议先掌握 PHP 的基础知识,并学会如何调试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接