2017-05-19 84 views
1

我有这个疑问与左连接是在phpMyAdminLaravel查询构建

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)我看到所有的数据是可变的。为什么我得到这个错误?

回答

2

是您试图访问一个对象变量的集合,如果你想只得到一个注册,您可以换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 
+1

那么简单。非常感谢你!首先会正常工作。我没有另一个符号显示,所以它只是第一个()。只要SO允许我,我会尽快接受答案。 – Ivan