2017-09-03 9 views
0

私はモデルuserとuser_dataを持っています。私はユーザーとユーザーのデータからいくつかのデータを取りたいです。laravelの関係を使用して2つのテーブルからユーザー情報を取得

Userモデル::私のコードは次のようになります

public function user_data() 
{ 
    return $this->hasMany('App\Models\UserData', 'user_id'); 
} 

public function getUserById($id) 
{ 
    $user = User::findOrFail($id); 

    return $user; 
} 

UserDataのモデル:

public function user() 
{ 
    return $this->belongsTo('App\User', 'user_id'); 
} 

ユーザコントローラ

public function getUser($id) 
{ 
    //$user = $this->model->getUserById($id); 

    $user = User::with('user_data')->find(3); 

    dd($user->sex); 
    return view('user', compact('user')); 
} 

私は2つのテーブルからデータを取得できますか?私はセックスをダンプするとき、私はnullを得るが、私はそれをdbで持っている。

答えて

0

あなたはそれを交換しようと取り組んでいない場合は、この

$user->user_data[0]->sex // Not $user->sex 

のようなものの中で確認することができ、その後、この

public function user_data() 
{ 
    return $this->hasMany('App\Models\UserData', 'user_id','your local key'); 
} 

$user = User::with('user_data')->where('id',$id)->first(); // Get the data like this 

のような関係でも、ローカルキーを追加する必要があります外部キーとローカルキーの場所。

また、このようなデータを取得する必要があります

+0

ローカルキーとは何ですか?これを見つける場所? –

+0

最初の$ user-> user_data-> sexのようにデータを取得しようとします –

+0

私はこのPropertyインスタンスを持っていますが、このコレクションインスタンスに存在しません。 –

関連する問題