如何访问 laravel 中的数组
How to acces array in laravel
所以这是一个真正的新手问题,但我需要更好地了解 Laravel 和 PHP 的工作原理。
我想使用 {{$article->title}}
或 {{$article['title']}}
从 blade 访问数组
我发现它的唯一方法是创建一个 stdClass()
并将数组的每个值归因于新的 object.
$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);
但我找不到在我的 blade 模板中访问 $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)
我建议你学习 Eloquent and Collections。这是正确的方法。使用这些你可以简单地获取数据:
$article = Article::where('id', $var)->first();
然后将 $article
传递给视图并通过以下方式访问它:
{{ $article->title }}
解释
Laravel 非常直观。把它想象成现实生活中的东西。您要求您的实习生交付所有文章。您现在拥有所有文章,现在可以继续在您的文书工作中显示它们。
这与 Laravel 基本相同。您要求门面 DB
为您提供 所有文章 。大多数时候,您会将结果转换为变量。所以你的变量应该命名为 $articles
而不是 $article
.
然后,您可以在 Laravel Blade 中使用 @foreach ()
语法来遍历所有文章。它真的就是那么简单和直观。就像您在现实世界中询问某事一样工作。 Laravel 就是这样构思出来的。
因此,对于门面为您提供的每篇文章(只有一篇),您都必须从中有所作为。
有一个很棒的(如果不是很棒的话)免费课程,您可以在主持人 Jeffrey Way 的 Laracast 网页上查看,该网页通过一个简单的卡片示例解释了所有这些内容。
源代码
<!-- 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 和 PHP 的工作原理。
我想使用 {{$article->title}}
或 {{$article['title']}}
我发现它的唯一方法是创建一个 stdClass()
并将数组的每个值归因于新的 object.
$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);
但我找不到在我的 blade 模板中访问 $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)
我建议你学习 Eloquent and Collections。这是正确的方法。使用这些你可以简单地获取数据:
$article = Article::where('id', $var)->first();
然后将 $article
传递给视图并通过以下方式访问它:
{{ $article->title }}
解释
Laravel 非常直观。把它想象成现实生活中的东西。您要求您的实习生交付所有文章。您现在拥有所有文章,现在可以继续在您的文书工作中显示它们。
这与 Laravel 基本相同。您要求门面 DB
为您提供 所有文章 。大多数时候,您会将结果转换为变量。所以你的变量应该命名为 $articles
而不是 $article
.
然后,您可以在 Laravel Blade 中使用 @foreach ()
语法来遍历所有文章。它真的就是那么简单和直观。就像您在现实世界中询问某事一样工作。 Laravel 就是这样构思出来的。
因此,对于门面为您提供的每篇文章(只有一篇),您都必须从中有所作为。
有一个很棒的(如果不是很棒的话)免费课程,您可以在主持人 Jeffrey Way 的 Laracast 网页上查看,该网页通过一个简单的卡片示例解释了所有这些内容。
源代码
<!-- 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