2016-11-10 8 views
2

Laravelのドキュメントが雄弁モデルを設定するには、次の方法を提案している:あなたがから延びるしている場合説得力:モデル自体の内部でモデル変数を読み込んで設定する方法は?

$user = new user(); 
$user->setup($conditions); 
// class definition 
class user extends Eloquent{ 
    public function setup($conditions){ 
     // load current object with table data 
     // something like 
     $this->where($conditions)->first(); 
     // previous line output is dangling, is ok to assign it to $this variable? 
    } 
} 
+0

質問が不明です。 –

+0

'$ user-> id'と他のカラム変数はアクセス可能で(たぶんそれらは空ではない)、2番目の' $ user'は空のオブジェクトです。どうすればこのオブジェクトを読み込むことができますか? 'setup'メソッドを呼び出した後で列変数を使用しますか? – HPM

+0

現在のオブジェクトを表データでロードするには、表からロードする行を知っている必要があります。あなたはその情報をどのように提供するのでしょうか。最初のコードでは、データから最初の行をロードし、2番目の行では行を指定しません。あまり意味がありません。 –

答えて

1

:私はモデル自体の内部で私の雄弁なモデルを設定したい場合はどう

$user = user::with($conditions)->first(); 

Eloquentモデル、あなたは次のアプローチを試みるかもしれません。一意のid列があるとします。

public function setup($conditions) 
{ 
    $model = self::with($conditions)->first(); 

    if (! is_null($model)) { 
     $this->exists = true; 
     $this->forceFill(self::find($model->id)->toArray()); 
    } 

    return $this; 
} 

これはあなたの問題を解決します。

+0

この回答はまったく新しいオブジェクトを返しますが、現在のオブジェクトはロードされません。 – HPM

+0

私の以前のソリューションを更新しました。この方法で 'setup()'メソッドはモデルデータを読み込みます。 –

+0

あなたの答えは完璧に機能しますが、私はまだ誰かがもっと頑強なソリューションを提案してくれることを願っています! – HPM

関連する問題