リレーションシップを介してアクセスしながら、ID の別の配列を使用してリレーションシップ コレクションを注文することは可能ですか?
セットアップにChecklist
は多くChecklistItem
の があり、関連するアイテムの希望する順序はプロパティとして存在しますChecklist::$item_order
。これは、ユーザーが希望する順序で並べられた数値 ID の単なる配列です。:
class Checklist extends Model {
protected $casts = ['item_order' => 'array'];
public function items() {
return $this->hasMany(ChecklistItem::class);
}
}
class ChecklistItem extends Model {
public function list() {
return $this->belongsTo(Checklist::class);
}
}
この関係に通常の方法でアクセスします。
$list = Checklist::find(1234);
foreach ($list->items as $item) {
// More Code Here
}
配列$list->items
の値に基づいて注文する実行可能な方法はありますか?$list->item_order
(「アイテム」テーブルに「注文」列を追加することはできません。b/c 各「リスト」の順序が変更されます。)