2017-02-01 7 views
1

私はユーザープロファイルページを作成しています。私はユーザーモデルとユーザープロファイルモデルからデータを取得したいと思います。しかし、私は結果を得ることに問題があります。ここに私がやったことだ:Laravelの他の関連モデルデータにアクセスするには?

Userモデル

class User extends Authenticatable 
{ 
    use Notifiable; 

    /** 
    * The attributes that are mass assignable. 
    * 
    * @var array 
    */ 
    protected $fillable = [ 
     'name', 'email', 'password', 'username', 
    ]; 

    /** 
    * The attributes that should be hidden for arrays. 
    * 
    * @var array 
    */ 
    protected $hidden = [ 
     'password', 'remember_token', 
    ]; 
    /* 
    public function isAdmin() { 
     return $this->admin; 
    } 
    */ 

    public function profile() { 
     return $this->hasOne('App\UserProfile'); 
    } 

} 

のUserProfileモデル

class UserProfile extends Model 
{ 
    protected $table = 'user_profile'; 

    protected $fillable = [ 
     'phone', 
     'address' 
    ]; 

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

その後、私は私のProfileControllerから

public function getProfile($username) { 

     $user = User::with('user_profile')->where('username', $username)->get(); 

     dd($user); 



    } 

に関係をアクセスし、私はこれを得ました間違いまたは:

$user = User::with('profile')->where('username', $username)->first(); 

また、この場合には、ユーザーオブジェクトを取得するためにfirst()メソッドを使用する必要があります。

Call to undefined relationship [user_profile] on model [App\User]. 

USER_PROFILEは、私のテーブル名

+0

構文が正しくありません。ユーザモデルのユーザとユーザプロファイルの関係を記述する。それから電話してください。 –

+0

私はすでに関係があります。私の投稿を更新しないでください。 – Jerielle

答えて

1

ために適切な関係名です。

+0

'User'と' UserProfile'以外の 'ProfileController'にも関係が必要ですか? – Jerielle

+0

@Jerielleあなたはちょうど適切な関係コードであなたの質問を更新しました。だから、私は私の答えに記載されているようにそれを使用する必要があります。 –

+0

それを試してみてください:) – Jerielle

関連する問題