2017-03-15 15 views
1

私は現在、自分のアプリケーションを最適化しています。本当に必要なものだけを選択しています。例えばlaravel特定の列を選択して関係を設定します

私はUserオブジェクトを取得しています、私は通常、このようにそれを実行します。

$user = User::where($attribute, '=', $value)->first(); 

このコードは、すべての列との完全なユーザーオブジェクトを私に戻って得られます。マイusersテーブルはかなり大きいので、私はそれだけで私はこのような必要な列を選択することをお勧めし考えた:

$user = User::where($attribute, '=', $value)->first($columns); 

また、これは期待通りに働いています。しかし、私の問題は、列を指定するとすぐに、もはやオブジェクトではないので、$ user変数の関係はもう働きません。

私の質問は:それだけでいくつかの列を選択するが、それでも

$user->parents 

おかげのような関係を使用できるようにすることは可能です!

答えて

0

はこの

$user = User::where($attribute, '=', $value)->select($columns)->first(); 
0

はちょうどあなたが取得したいの関係のために、すべての外部キーを追加してみます。あなたがparent()関係を使用したい場合たとえば、ちょうど$columnsにキーを追加します。その後

array_push($columns, 'parent_id'); 

を、あなたはparent()関係を使用することができます。

関連する問題