2017-12-05 6 views
1

私はすべてのカテゴリを含むこの単純なテーブルを持っている:Laravel:表中のクエリ子供のいない要素

カテゴリー: ID |私はチャイルズを持っていないすべてのカテゴリを照会することができる方法のParentID雄弁を使用して

、|名前?

+0

あるものチャイルズは?、私は意味チャイルズでコード –

+0

でさらに説明されています: 'id'の値を持つカテゴリは、他のカテゴリの 'parentid'の値としては出現しません。 –

答えて

0

あなたが何か行うことができます:

Category::whereNull('parent_id')->get(); 

をしかし、それはより良いモデルの「子どもの関係を設定し、それを使用してそれをやっているかもしれません:

Category.php

public function children() 
{ 
    return $this->hasMany('App\Category', 'parent_id', 'id'); 
} 

使用

Category::whereDoesntHave('children')->get(); 
+0

ありがとうございます! 私はこれを変更しなければならなかった: 返す$ this-> hasMany( 'App \ Category'、 'id'、 'parentid); 〜 返す$ this-> hasMany( 'App \ Category'、 'parentid'、 'id'); –

+0

ああ、私は答えを更新します、私はいつもそれらを間違った方法で取得します。 – martincarlin87

1

あなたは関係を構築する必要があり、その後、次の

$query = Category::query(); 
$query->whereDoesntHave('child'); 
$query->get(); 

を使用することができるか、最も簡単なのは

Category::whereNull('parent_id')->get(); 
関連する問題