繁体   English   中英

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

[英]Passing array from controller to view in 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中的ErrorException第5行:非法字符串偏移'firstname'(查看:C:\\ AppServ \\ www \\ blog4 \\ resources \\ views \\ one_dim_array.blade.php)

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

由于它不是多维数组,因此使用this而不是foreach()

$info['firstname']

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

<?php

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

?>

你试图从一个字符串中获取索引'firstname'元素(在你的例子中它将是'John' )。 如果要遍历所有元素并显示它们,请尝试以下操作:

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

或者如果要显示数组的特定元素,请尝试此操作

echo $info['firstname'];

要么

echo $info['lastname'];

我认为你期望接受视图的多维数组。 我想这是你期望传递给视图的数组的值

控制器代码:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM