Php Laravel一对一关系从数据库返回所有相关资源?

Php Laravel一对一关系从数据库返回所有相关资源?,php,laravel,api,eloquent,Php,Laravel,Api,Eloquent,我目前正在处理一个实例,其中一个用户拥有一笔养老金,如Laravelone-To-one关系中的情况。对于下面的代码示例,我仍然想知道为什么它从数据库返回所有相关记录,而不是一条 用户模型 public function pension(){ return $this->hasOne(Pension::class)->latest(); } 养老金模式 public function user(){ return $this->belongsTo(User::

我目前正在处理一个实例,其中一个用户拥有一笔养老金,如
Laravel
one-To-one
关系中的情况。对于下面的代码示例,我仍然想知道为什么它从数据库返回所有相关记录,而不是一条

用户模型

public function pension(){
    return $this->hasOne(Pension::class)->latest();
}
养老金模式

public function user(){
    return $this->belongsTo(User::class);
}
然后在我的养老金控制器中,导入
App\User

public function user($id){

        $user = User::find($id);
        return PensionResource::collection(  
            $user->pension()->with(
                $this->particulars()
            )->get() 
        );
    }

private function particulars(){
        return [
            'user:id,surname,first_name,other_name',
            'pension_manager:id,name'
        ];
    }

注意我特意允许一个用户在数据库中有多条记录。什么是可能的修复方法?

你能详细说明一下吗?请注意,我故意允许一个用户在数据库中有多个记录?@vivek_23我知道,如果数据库中只允许一个用户有一个养老金记录,问题就会解决。没错。Laravel关系不仅仅是以代码的形式存在,这种关系甚至在数据库行中也必须得到尊重。我相信这并不是所有的时间,一种关系可以同时是
一对一
一对多
?有真实的用例吗?