问题描述
尝试将失败的值作为单独的值从此数组传递到视图中:
#items: array:1 [▼
0 => {#548 ▼
+"location": "Guadalajara"
+"location_id": 34
}
]
}
此数组位于左联接查询之后
$default_loc = DB::table('users')
->leftJoin('locations','users.location_id','=','locations.id')
->where('users.id',auth()->user()->id)
->select('location','location_id')
->get();
如果我尝试通过compact('default_loc')
将此数组传递给视图,那么我只能使用{{ $default_loc }}
显示整个数组,如上所示,但不能将其分成{{1 }}和$default_loc->location
。
谢谢大家
解决方法
由于$default_loc
是一个数组,因此您应将其视为一个数组,因此要访问它,您需要使用[]
运算符:
{{ $default_loc[0]->location_id }}
但是,如果您确定只返回1条记录,则可以使用first()
方法而不是get()
来直接给您对象:
$default_loc = DB::table('users')
->leftJoin('locations','users.location_id','=','locations.id')
->where('users.id',auth()->user()->id)
->select('location','location_id')
->first();
...
{{ $default_loc->location_id }}
,
您的预期结果是否总是1个结果?如果是,则可以将-> get()更改为-> first(),那么您将只有一个对象。
如果没有,则需要在视图中进行迭代或使用索引进行访问:
@foreach($default_loc as $loc)
{{ $loc->location_id }} - {{ $loc->location }}
@endforeach
或
{{ $default_loc[INDEX]->location_id }} {{ $default_loc[INDEX]->location }}