laravel Auth::user()->返回所有而不仅仅是经过身份验证的用户

mar*_*kus 2 php laravel laravel-5

错误:这会返回所有用户及其人员:

$me = Auth::user()->with('persons')->get();
Run Code Online (Sandbox Code Playgroud)

正确:这仅返回经过身份验证的用户及其人员

Auth::user()->persons()->get()
Run Code Online (Sandbox Code Playgroud)

模型

 public function persons(){
        return $this->hasMany('App\Person', 'user_id');
    }
Run Code Online (Sandbox Code Playgroud)

区别在哪里?为什么第一行返回所有用户?

谢谢

Mop*_*ppo 5

with应该在Builder非模型实例上的对象上调用。

在第一个示例中,您在User实例上调用它,就像调用:

User::with('persons')->get();
Run Code Online (Sandbox Code Playgroud)

所以 Laravel 返回所有用户及其人员

请注意,如果您想在单个模型上加载关系,您可以执行以下操作:

$me = Auth::user();
$me->load('persons');
Run Code Online (Sandbox Code Playgroud)