【问题标题】:Laravel - Pass arrays with multiple identical titlesLaravel - 传递具有多个相同标题的数组
【发布时间】:2014-07-05 03:37:40
【问题描述】:

所以我查看了这个线程来弄清楚如何将数据从控制器发送到视图here

但是,我试图将具有相同标题的多个值传递给视图,但我似乎无法弄清楚如何执行此操作,并且以后仍然可以访问它们。

我有一个 for 循环,可以抓取用户在其数据库中的所有电影,然后将这些信息存储到一个名为 $data 的数组中

        $data = array();
        foreach ($films as $film)
        {               
            $title = $film->title;
            $description = $film->description;
            $url = $film->fileUrl;
            $data = array_add($data, 'title', $title);
            $data = array_add($data, 'description', $description);
            $data = array_add($data, 'url', $url);
        }
    $this->layout->content = View::make('profileFilms')->with($data);

这可行,但我不知道如何访问此信息,我尝试使用所有三个数据值将每个“电影”制作为自己的数组,然后将其添加到更大的数组中,然后将该数组传递给视图,这又是工作,但我不知道如何访问数据。如果我使用说 {{$title}} 它会抓住一个标题,但我无法同时获得两者。

如何将 N 部影片及其标题、描述和 url 传递给视图以便显示它们,以及如何显示它们?

【问题讨论】:

    标签: php arrays laravel laravel-4


    【解决方案1】:

    您将值直接添加到数组中一次,就是这样,因为 Laravels array_add 只会覆盖不存在的键。

    你应该这样做(或使用Eloquent):

    <?php
    $data = array();
    foreach ($films as $film){
        $data['films'][] = array(
            'title' => $film->title,
            'description' => $film->description,
            'url' => $film->fileUrl
        );
    }
    $this->layout->content = View::make('profileFilms')->with($data);
    

    然后您就可以访问您的电影(Blade 风格):

    @foreach($films as $film)
        {{$film['title']}}
    @endforeach
    

    如果您想像$film-&gt;title 一样使用它,您可以在分配数组时使用(object) 类型转换。

    当然,你也可以像这样直接传递$films

    $data = array(
        'films' => $films
    );
    

    然后您可以像在控制器中一样访问您的影片。您也可以使用print_rvar_dump 来查看变量真正包含的内容。

    【讨论】:

    • 这正是我想要的,非常感谢!
    【解决方案2】:
        $data = array();
        foreach ($films as $film)
        {               
            $row = array();
            $row = array_add($data, 'title', $film->title);
            $row = array_add($data, 'description', $film->description);
            $row = array_add($data, 'url', $film->fileUrl);
            // will send to view
            $data[] = $row;
        }
        $this->layout->content = View::make('profileFilms')->with($data);
    

    【讨论】:

    • 我提到我尝试过这个,如果我这样做了,我将如何通过视图访问它? $row->title?
    猜你喜欢
    • 2015-12-29
    • 2015-01-14
    • 2021-12-20
    • 2019-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 2018-10-22
    相关资源
    最近更新 更多