2016-10-11 7 views
0

私は次のように、インスタンス化されたユーザーのIDにアクセスすることにより、カスタムメソッドを作成したい:別の関係を作成せずに、ユーザーモデル内でインスタンス化されたユーザーにアクセスするにはどうすればよいですか?

public function ware(){ 
    return File::where('owner', $this->user->id); 
} 

同じアクセサまたは範囲である可能性があります。その後、Laravelのドキュメントhereに概説されているよう

$user = User::find(5); 
$user->ware()->all()... 
+0

'$ this-> user-> id'の代わりに' $ this-> id'または '$ this-> attributes ['id']'でなくてはなりません。 'ware()'はインスタンスです'User'のメソッド? – Doom5

答えて

1

を呼び出すことができることあなたはPK/FKを使用して関係を定義し、次に同じような関係を経由してアクセスすることができました:ファイルテーブルが列を持っていることを確認してください

user_idの場合、上記のように機能する関係が可能になります。

モデルユーザーに追加:

/** 
* Get the files for the user. 
*/ 
public function files() 
{ 
    return $this->hasMany('App\File'); 
} 

モデルをファイルに追加する:

/** 
* Get the user for the file. 
*/ 
public function user() 
{ 
    return $this->hasOne('App\User'); 
} 

あなたはその後、(ユーザーファイルにを取得するためにUser::find(5)->filesと同じようにアクセスするか、File::find(5)->userができファイルユーザーを返します。

関連する問題