如何在 laravel 中访问数组

Posted

技术标签:

【中文标题】如何在 laravel 中访问数组【英文标题】:How to acces array in laravel 【发布时间】:2017-05-06 18:07:50 【问题描述】:

所以这是一个非常新手的问题,但我需要更好地了解 Laravel 和 php 的工作原理。

我想通过类似 $article->title$article['title'] 的方式从刀片访问数组

我发现它的唯一方法是创建一个stdClass() 并将数组的每个值都分配给新对象。

    $article = new \stdClass();

    $article->id = "";
    $article->title = "";
    $article->content = "";
    $article->created_at = "";
    $article->updated_at = "";

    if($var != null)
        $tmp = DB::select('select * from articles where id = ' . $var);
        $article->id = $tmp[0]->id;
        $article->title = $tmp[0]->title;
        $article->content = $tmp[0]->content;
        $article->created_at = $tmp[0]->created_at;
        $article->updated_at = $tmp[0]->updated_at;
    

但是这很丑陋,我想知道这样做的正确方法是什么。

我试着用简单的

$article = DB::select('select * from articles where id = ' . $var);

但我在刀片模板中找不到访问 $article 的方法。

这是它的var_dump

array (size=1)
  0 => 
    object(stdClass)[170]
      public 'id' => int 1
      public 'title' => string 'Test' (length=4)
      public 'content' => string '<p>Test</p>' (length=151)
      public 'created_at' => string '2016-12-21 10:00:04' (length=19)
      public 'updated_at' => string '2016-12-21 10:15:57' (length=19)

【问题讨论】:

$article = $tmp[0];将简化您上面的示例。但正如 Alexey 所建议的, ->first() 也会更正确。 【参考方案1】:

我建议你学习Eloquent 和Collections。这是正确的方法。使用这些您可以简单地获取数据:

$article = Article::where('id', $var)->first();

然后将$article 传递给视图并通过以下方式访问它:

 $article->title 

【讨论】:

【参考方案2】:

说明

Laravel 非常直观。把它想象成来自现实生活的东西。你要求你的实习生提供所有的文章。您现在拥有所有文章,现在可以继续在文书工作中显示它们。

这与 Laravel 基本相同。您要求门面DB 为您提供所有文章。然后,您将在大多数情况下将结果转换为变量。所以你的变量应该命名为$articles而不是$article

然后,您可以使用 Laravel Blade 中的 @foreach () 语法来遍历您的所有文章。它真的那么简单和直观。就像您在现实世界中询问某事一样工作。这就是 Laravel 的构想。

因此,对于外观为您提供的每篇文章(只有一篇),您都必须从中有所收获。

有一个很棒的(如果不是很棒的话)免费课程,您可以在 Laracast 网页上与主持人 Jeffrey Way 一起查看,该课程通过一个简单的卡片示例来解释所有这些。

源代码

<!-- I consider the variable you return in the view to be $articles -->

@foreach ($articles as $article)

    <h1> $article->title </h1>

    <!-- some more html code as you wish to display it -->

@endforeach

文档

Laravel 5.3 : Blade.

Laracast : Laravel From Scratch (Fetching datas).

【讨论】:

以上是关于如何在 laravel 中访问数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在laravel中替换和分解数组输入

如何将视图中的数组传递给 ajax 并在 Laravel 5 的控制器中访问?

如何在刀片模板的 foreach 循环中访问 laravel 集合?

如何在脚本中访问数组中的项目?

Laravel - 创建一个会话数组并在每次重新加载页面时添加到它

如何在 Laravel 中验证数组?