2017-05-25 6 views
0

私はlaravelに新しいが、いくつかのモデルとビューなどを設定しました。とにかく、私はしようとしているのは、チームモデル。フィールド 'id'は、ユーザーのteam_idの外部キーです。 ユーザーは参加しているチームとチームに参加できます。そのIDはユーザーの 'team_id'に保存されます。 チームの名前のようなチームモデルからデータを取得し、ブレードビューに表示するには、team_idフィールドを使用しています。ここでLaravel 5.4は、ブレード内の外部キーを介してデータにアクセスすることができません

ユーザーモデルの私のコードです:

 protected $fillable = ['name', 

     'email', 
     'password', 
     'date_of_birth', 
     'team_id', /*references id in teams model*/ 
     'matches_played', 
     'goals_scored', 
     'preffered_position', 
     'phone_number', 
     'role', 
     'ban_status', 
     'team_captain' 
    ]; 





    /** 
    * The attributes that should be hidden for arrays. 
    * 
    * @var array 
    */ 
    protected $hidden = [ 
     'password', 'remember_token', 
    ]; 


    public function Teams(){ 
     return $this->belongsTo('App\Teams', 'team_id'); 
    } 


} 

これは、チームモデルのための私のコードです:

`protected $primaryKey = 'id'; 
protected $fillable = ['team_name', 'matches_played', 
'matches_lost', 'goals_scored', 'goals_conceded', 
'captain_name']; 

public function User(){ 
    return $this->hasMany('App\User','id'); 
} 

`

public function showMembers(){ 
    $users = User::with(array('Teams'))->get(); 
    return view('admin.members')->with('users', $users); 
    } 

`

` とこの{{する$ user-> team_id-> TEAM_NAME}}

しかし、代わりにそれを表示するので、私は取得し続ける:私はブレードでそれを表示しようとしている方法です

Trying to get property of non-object (View: D:\Code\PHP\Code\PlayOn\resources\views\admin\members.blade.php) 

すべてのヘルプは次のようになり感謝!

答えて

0

ここで間違っていることがいくつかあります。

まず、熱心な負荷に関係が、この場合、チームの関係で、これはそれを行う方法です:

$users = User::with('Teams')->get(); 

最後に、コレクションをループに、あなたが何かをする必要がありますこのように:

@foreach($users as $user) 
    {{ $user->Teams->team_name }} 
@endforeach 
+0

どうもありがとう! –

関連する問題