2016-04-02 21 views
0

私はEloquentから始めています。変数に依存するモデルに新しい属性を追加したいと思います。Eloquentで変数を使用して属性を追加する方法

私はいくつかのカスタムは次のように属性を追加しました:どのように私は$渡すことができます

protected $appends = ['people', 'similars']; 
public function getSimilarsAttribute() { 
    return $this->users()->where('property', '=', $variable)->count(); 
} 

protected $appends = ['people']; 
public function getPeopleAttribute() { 
    return $this->users()->where('active', '=', 1)->count(); 
} 

しかし、私は変数に依存して新しい属性を追加する必要があり、このような何かゲッターに変わる?

ありがとうございました!

答えて

0

実際には$model->similarという変数を指定することはできませんので、これは不可能です。ここ

は、あなたがそれを使用する場合、あなたは単にYourModel::similars('fooBar')

+0

こんにちはDouglasDC3行うことができます。この(https://laravel.com/docs/5.2/eloquent#query-scopes

public function scopeSimilars($query, $variable) { return $query->users()->where('property', '=', $variable)->count(); } 

を行うことができる方法で、 は、あなたの答えをありがとう、それは動作しません。 変数に依存する新しい属性をモデルに追加する必要があります。これは、カスタムの選択であり、条件ではありません。 スコープの目的がある場合、クエリに条件を追加しますが、選択には属性値を追加しません。とにかくありがとうございます。 私はスコープについて知らなかったし、将来的には役立つかもしれない –

関連する問題