使用laravel中的关系从两个表中获取用户信息

时间:2017-09-03 10:18:02

标签: php laravel

我有模型用户和user_data。我想从用户和用户数据中获取一些数据。我的代码如下:

用户模型:

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'));
}

如何从两个表中获取数据?当我转储性别时我得到null,但我在db中有它。

1 个答案:

答案 0 :(得分:0)

你必须在这样的关系中添加本地密钥

sample.model //place the @Entity Java beans
sample.dto //place the aforementioned DTO
sample.controller //place the controller class

之后你可以检查它是什么样的

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

如果它不起作用,请尝试交换外键和本地键位置。

此外,你必须采取这样的数据