【发布时间】:2018-12-07 02:07:03
【问题描述】:
我需要访问连接表,如果在没有选择子句的情况下获取数据,getProducts() 方法就可以工作。如何在没有 select 子句的情况下获得 point_transaction->id? (我正在获取用户表 ID)
控制器
$query = PointTransaction::join('users','users.id','=','point_transactions.user_id')->select('point_transactions.id as point_id', 'point_transactions.status as point_status')
查看
<td>{{$pointTransaction->point_id}}</td>
<td>
{!!'';$items = $pointTransaction->getProducts() !!}
@foreach($items as $key => $value)
{{$key}} : {{$value}}
@endforeach
</td>
我尝试了以下查询:
$query = PointTransaction::join('users','users.id','=','point_transactions.user_id')->select('point_transactions.id as point_id', 'point_transactions.status as point_status');
并且我收到了尝试获取上述 getProducts() 方法的非对象属性的错误
我也尝试了以下方法:
$query = PointTransaction::join('users','users.id','=','point_transactions.user_id');
if($where){
switch($where){
case "point_transactions.id":
$query = $query->where('id', $value);
break;
default:
$query = $query->where($where, 'like', '%'.$value.'%');
break;
}
}
$pointTransactions = $query->desc()->paginate($paginate)->get(['point_transactions.id as point_id', 'point_transactions.status as point_status']);
我收到以下错误:
Collection.php 第 1032 行中的 ErrorException: array_key_exists():第一个参数应该是字符串或者整数
【问题讨论】:
-
->get()->all() -
您应该使用关系,在您的代码中它似乎是一对多关系。 laravel.com/docs/5.6/eloquent-relationships