【发布时间】: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() 也会更正确。