使用' foreach'在第一()没有工作Laravel Eloquent

时间:2016-11-26 04:13:31

标签: laravel laravel-5.3

我试图将自定义属性添加到检索到的集合

$category = categories::where('cat_id',$id)->first();
foreach($category as $c):
    dd(var_dump($c->cat_id))
    $c->custom_attr = $c->cat_id;
endforeach;

但它却抛出了这个错误

  

尝试获取非对象的属性

除非我使用' get()'而不是' first()'然后它奏效了。如果我做

$category = categories::where('cat_id',$id)->first();
foreach($category as $c):
    dd(var_dump($c))
endforeach;

它让我回头

bool(true)
null

如果我这样做

$category = categories::where('cat_id',$id)->first();
foreach($category as $c):
    dd(var_dump('xx'))
endforeach;

确保转储返回' xx'。有什么想法,请帮忙吗?

1 个答案:

答案 0 :(得分:3)

您应该使用get()代替first()

first()为您提供了一个对象,get()会为您提供一组对象。

如果您想获取属性,请不要使用foreach()for(),只需获取以下属性:

$category->name;