Laravel查询建筑

时间:2017-05-19 10:08:56

标签: php laravel laravel-5

我有左连接的查询,这是phpmyadmin中的返回数据

SELECT * FROM `items`
LEFT JOIN countries ON items.category_id = countries.id
where items.id = 20

我试图在Laravel中像这样重现它

    $defaultCountry = DB::table('items')
                ->leftJoin('countries', 'countries.id', '=', 'items.country_id')
                ->where('items.id', 20)
                ->select('items.*', 'countries.*')
                ->get();

但是当我执行它时我有错误

  

试图获得非对象的属性......第6行

第6行

{!! $defaultCountry->symbol !!}

符号是表defaultCountry

countries的符号

当我var_dump($defaultCountry)时,我发现所有数据都在变量中。为什么我会收到此错误?

1 个答案:

答案 0 :(得分:1)

问题是您正在尝试访问集合上的对象变量,如果您只想获得一个寄存器,则可以get()替换first()

  $defaultCountry = DB::table('items')
                ->leftJoin('countries', 'countries.id', '=', 'items.country_id')
                ->where('items.id', 20)
                ->select('items.*', 'countries.*')
                ->first();

然后您可以访问变量,因为现在不是结果的集合。

如果您想要在视图中访问收藏数据,则应在刀片视图上使用一个foreachfor循环结果:

@foreach($defaultCountry as $country)
    {!! $country->symbol !!}
@endforeach