Php laravel一对一关系:交换方法

Php laravel一对一关系:交换方法,php,laravel,eloquent,Php,Laravel,Eloquent,我看了一下这段雄辩的关系 我的问题是:切换hasOne和belongsTo之间有区别吗 Laravel文件: public function phone() { return $this->hasOne('App\Phone'); } public function user() { return $this->belongsTo('App\User'); } 我可以交换如下方法: public function phone() { return $thi

我看了一下这段雄辩的关系

我的问题是:切换hasOne和belongsTo之间有区别吗

Laravel文件:

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

public function user()
{
    return $this->belongsTo('App\User');
}
我可以交换如下方法:

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

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

不,您不能简单地交换,看看外键驻留在哪个模型中,在您的情况下,电话属于一个用户,所以在您的电话表中应该有用户ID,所以您的关系必须是这样的

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

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