2016-04-28 15 views
0

私は、別のモデル(Toc)に関連するモデル(ジャーナル)を持っているので、各ジャーナルは1つ以上TOC、各ジャーナルでTocsの数を含むジャーナルのリストを取得したい。laravel 4、モデル関係、他のモデルの関連する行のカウントを持つモデルのリストを取得

私は、各ジャーナルのトクのリストを持つジャーナルのリストを取得し、PHPのカウント機能を使用してトゥクをカウントするコードを作成しました。しかし、私はそれらを食べるリスト全体を取得するよりも効率的な方法かもしれないと思いますより多くの記憶。ここで

私のコードです:

モデル:

public function toc() 
{ 

    return $this-> hasMany ('Toc', 'journal_id') ; 

} 

コントローラー:

$this->data['model'] = $this->model->with('toc')->get() ; 

任意のヘルプ? 注:私はあなたがあなたのモデル雑誌で、何をしたい値を設定するためにMutatorsを使用することができますlaravel 4

答えて

2

を使用しています追加:

protected $appends = array('numberOfTocs'); 

と、この属性を取得する方法:

public function getNumberOfTocsAttribute() 
{ 
    return $this->toc()->count(); 
} 

この方法では、Tocの数に対応するクエリに追加の属性があります。

Hereは、他の興味深い実装です。

+0

コントローラでこの追加属性を使用するにはどうすればよいですか? あなたが入力したURLに従うことができません。試している間に表示され、エラーが表示されます。 – darroosh

+1

データをデバッグする場合は、[model]を選択してください。numberOfTocという追加の属性を持つジャーナル –

+1

これはリンクです。https://softonsofa.com/tweaking-eloquent-relations-how-to-get-hasmany-関係数効率的/ –

関連する問題