[英]Laravel return object with nesting
假設以下模型:
class Character extends Model
{
protected $fillable = ['items'];
protected $guarded = ['id'];
public function items(){
return $this->hasMany("App\Item");
}
}
class Item extends Model
{
public function character(){
return $this->belongsTo("App\Character");
}
}
發出請求后,控制器將執行以下操作:
public function getCharacter(Request $request, $characterID = 0){
$characters = array(Character::find($characterID));
foreach($characters as $key => $value){
//ADD THE ITEMS
$characters[$key]->items = $characters[$key]->items;
}
return $characters;
}
------ 這很好。
我得到一個帶有成員“ items”的字符json,該成員包含相應項目模型的所有數據。
但是 ,假定Items
不屬於Character
而是ItemPackage
。 具體而言, Items
屬於ItemPackage
( ItemPackage
有許多Items
)和ItemPackage
屬於Character
( Character
有許多ItemPackage
(S))
以類似的方式,我嘗試在控制器中執行以下操作,但不起作用。
....
foreach($characters as $key => $value){
//ADD THE ITEM
$characters[$key]->itemPackages = $characters[$key]->itemPackages
//the above line works but we also need to add the item obj data so:
foreach($characters[$key]->itemPackages as $key2){
$characters[$key]->itemPackages[$key]->arrayOfItems = "whatever here";
}
}
....
具體來說,我得到的錯誤是:未定義的偏移量:1.我顯然不了解運行良好的數據結構,也許有人可以照亮我。
感謝您抽出寶貴的時間
一個解決方案是:
$characters = Character::with('itemPackages')->with("itemPackages.items")->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.