如何在laravel中访问数组

时间:2016-12-21 10:36:22

标签: php arrays laravel blade

所以这是一个非常新手的问题,但我需要更好地了解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)

2 个答案:

答案 0 :(得分:2)

我建议您学习EloquentCollections。这是正确的方法。使用这些,您只需获取数据:

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

然后将$article传递给视图并使用以下命令进行访问:

{{ $article->title }}

答案 1 :(得分:0)

解释相关

Laravel非常直观。把它想象成现实生活中的某些东西。您要求您的实习生提供所有文章。您现在拥有所有文章,现在可以继续在文书中展示它们了。

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

然后,您可以使用Laravel Blade中的@foreach ()语法来遍历所有文章。这真的很简单直观。就像你在现实世界里问一些东西一样工作。这就是Laravel的构思方式。

所以,对于门面给你的每一篇文章(只有一篇),你必须从中做出一些东西。

免费提供一个很棒的(如果不是很棒的)课程,你可以在主持人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)