Laravel 与查询生成器的关系出错
Laravel relathionship with query builder get error
我有 3 个 table 与此 table 相关,我将此 table 称为
- 贝兰加 (parent)
- anak_belanja (child)
- 供应商(与parent有关系)
我可以从 parent 和 child 创建这种关系,但是在 table 供应商上我得到一个错误。通常我使用“with”并且没有错误,但现在我使用查询构建器并且遇到问题
我的 Belanja 模型
public function supplier()
{
return $this->belongsTo(\App\Models\Suplier::class ,'supplier_id');
}
我的Anak_Belanja模特
public function belanja()
{
return $this->belongsTo(\App\Models\Belanja::class ,'belanja_id');
}
这是我的控制器
public function render()
{
$user_id = Auth::user()->id;
$sub = SubRincianUraianKegiatan::where('user_id', $user_id)
->where('id' , $this->newid)
->pluck('uraian', 'id');
$sup = Supplier::all()->pluck('nama' ,'id');
$data = DB::table('belanja AS t')
->select([
't.id',
't.uraian',
't.tgl_belanja',
't.supplier_id',
DB::raw('coalesce(sum(p.harga * p.qty),0) AS total_order')
])
->leftjoin('suplier AS s','t.suplier_id','=','s.id') // on here i think this error
->leftjoin('anak_belanja AS p','p.belanja_id','=','t.id')
->where('sub_id', $this->newid)
->where('uraian', 'like', '%'.$this->search.'%')
->groupBy('t.id')
->groupBy('t.uraian')
->groupBy('t.tgl_belanja')
->groupBy('t.suplier_id')
->paginate(10);
return view('livewire.detail-belanja-lw',
['data' => $data ,
'sup' => $sup,
'sub' => $sub,
]);
}
在我的 blade 中,我尝试添加这样的供应商
{{$i->supplier->nama}}
但是我得到一个错误
Undefined property: stdClass::$supplier
有人可以解释我的错误吗?
$data = DB::table('belanja AS t')
->select([
't.id',
't.uraian',
't.tgl_belanja',
't.suplier_id',
DB::raw('coalesce(sum(p.harga * p.qty),0) AS total_order'),
DB::raw('s.nama as nama')
])
->leftjoin('suplier AS s','t.suplier_id','=','s.id') // on here i think this error
->leftjoin('anak_belanja AS p','p.belanja_id','=','t.id')
->where('sub_id', $this->newid)
->where('uraian', 'like', '%'.$this->search.'%')
->groupBy('t.id')
->groupBy('t.uraian')
->groupBy('t.tgl_belanja')
->groupBy('t.suplier_id')
->paginate(10);
试试这个。
我有 3 个 table 与此 table 相关,我将此 table 称为
- 贝兰加 (parent)
- anak_belanja (child)
- 供应商(与parent有关系)
我可以从 parent 和 child 创建这种关系,但是在 table 供应商上我得到一个错误。通常我使用“with”并且没有错误,但现在我使用查询构建器并且遇到问题
我的 Belanja 模型
public function supplier()
{
return $this->belongsTo(\App\Models\Suplier::class ,'supplier_id');
}
我的Anak_Belanja模特
public function belanja()
{
return $this->belongsTo(\App\Models\Belanja::class ,'belanja_id');
}
这是我的控制器
public function render()
{
$user_id = Auth::user()->id;
$sub = SubRincianUraianKegiatan::where('user_id', $user_id)
->where('id' , $this->newid)
->pluck('uraian', 'id');
$sup = Supplier::all()->pluck('nama' ,'id');
$data = DB::table('belanja AS t')
->select([
't.id',
't.uraian',
't.tgl_belanja',
't.supplier_id',
DB::raw('coalesce(sum(p.harga * p.qty),0) AS total_order')
])
->leftjoin('suplier AS s','t.suplier_id','=','s.id') // on here i think this error
->leftjoin('anak_belanja AS p','p.belanja_id','=','t.id')
->where('sub_id', $this->newid)
->where('uraian', 'like', '%'.$this->search.'%')
->groupBy('t.id')
->groupBy('t.uraian')
->groupBy('t.tgl_belanja')
->groupBy('t.suplier_id')
->paginate(10);
return view('livewire.detail-belanja-lw',
['data' => $data ,
'sup' => $sup,
'sub' => $sub,
]);
}
在我的 blade 中,我尝试添加这样的供应商
{{$i->supplier->nama}}
但是我得到一个错误
Undefined property: stdClass::$supplier
有人可以解释我的错误吗?
$data = DB::table('belanja AS t')
->select([
't.id',
't.uraian',
't.tgl_belanja',
't.suplier_id',
DB::raw('coalesce(sum(p.harga * p.qty),0) AS total_order'),
DB::raw('s.nama as nama')
])
->leftjoin('suplier AS s','t.suplier_id','=','s.id') // on here i think this error
->leftjoin('anak_belanja AS p','p.belanja_id','=','t.id')
->where('sub_id', $this->newid)
->where('uraian', 'like', '%'.$this->search.'%')
->groupBy('t.id')
->groupBy('t.uraian')
->groupBy('t.tgl_belanja')
->groupBy('t.suplier_id')
->paginate(10);
试试这个。