2015-08-24 140 views
0

我建立輸出JSON雄辯加入2個表

這樣一個API,我有什麼是2個表

Categories Table 
    id 
    name 
    nameAR 
    nameTR 

Items table 
    id 
    category_id 
    nameAR 
    nameEN 

我的JSON輸出是完全一樣,因爲Android應用程序已經發布,並且此API將取代靜態json文件

{ 
"name" : *Category name*, 
"nameAR" : *Category Arabic name*, 
"nameTR" : *Category Turkish name*, 
"items" : [ 

    {"nameAR": *Item Arabic name*, 
    "nameEN": *Item English name*}, 

    {"nameAR": *Item2 Arabic name*, 
    "nameEN": *Item2 English name*} 

    ... etc 
    ] 
} 

我知道我能做到這一點:

$cat=Category::first(); 
$items=$cat->items; 

讓每一個表中的單個變量,但我想要的是讓所有的類別與類別::所有(),並把所有屬於項目爲陣列中的一個對象稱爲類的對象

項目 *我有我的關係配置

Category : 
    public function items() 
     { 
      return $this->hasMany('Project\Item'); 
     } 
類別
Item: 
    public function category() 
     { 
      return $this->belongsTo('Project\Category'); 
     } 
+1

問題是什麼?你有什麼嘗試? –

+0

我設法加入每個項目的類別手動,但我只是不知道如何自動執行 – AlhasanIQ

回答

1

要獲得項目屬於這些類別的所有類別,你可以使用:

$categories = Category::with('items')->get(); 

當返回集合爲JSON你會得到你想要的東西,但你會有一些額外的列(如果你想要你需要使用select來選擇你真正需要的那些)

+0

我剛剛發現這一點,但我得到一個空數組。 雖然我很確定我的關係是好的 – AlhasanIQ

+0

@AlhasanIQ確保您的類別有效的項目。例如,對於id = 1的類別,您確定您有任何具有'category_id = 1'的項目嗎? –

+0

我發現這個問題,在我的查詢中,我選擇了類別 的特定列** select('name','nameAR','nameTR')** 如果我將id列添加到所選列查詢將工作 但我不添加它。我有什麼選擇 – AlhasanIQ