0
我一直堅持這幾天,現在想知道是否有人可以提供幫助。Laravel 5.2子查詢 - 通過多態樞軸表最後一行篩選行
數據庫表: '頁', '狀態', 'status_assignments'
頁型號:
protected $appends = ['status'];
public function statuses()
{
return $this->morphToMany('App\Models\Status', 'statusable', 'status_assignments')->withPivot('id', 'assigned_by_user_id', 'locked')->withTimestamps();
}
public function getStatusAttribute()
{
return $this->statuses()->orderBy('pivot_id', 'DESC')->first();
}
public function scopeWithStatus($query, $statuses)
{
$query->with('statuses');
if(is_array($statuses) && count($statuses) > 0)
{
$query->whereHas('statuses', function($q) use($statuses)
{
$cs = $q->orderBy('pivot_id', 'DESC')->first();
foreach($statuses as $status) $q->where('id', $status)->where('pivot_id', $cs->pivot->id);
});
}
return $query;
}
狀態型號:
public function pages()
{
return $this->morphedByMany('App\Models\Page', 'categorizable', 'category_assignments')->withTimestamps();
}
我想要做的檢索分配了最新狀態的id爲['array_of_status_ids'](範圍內狀態爲「$ status」)的頁面列表
$pages = Page::withStatus([1,2,3,4])->get();
關於此問題的任何建議都會非常感激!在此先感謝克里斯。
你是一個傳說我的朋友 –