Laravel - 自动加载 Auth::user() 关系

Fan*_*mic 2 php laravel eloquent

我想知道是否有可能以某种方式自动加载所有Auth::user()关系。

Auth::user()返回 my 的一个实例App\Models\Auth\Usuario.php,并且在Usuario.php类内部我与其他模型有一些关系。

我现在这样做的方式是手动加载关系,$user->load('relation')但我需要在每个请求中都这样做。

我想在我的基本控制器中做这样的事情:

public function __construct()
{
    $user = Auth::user();
    $this->relation = $user->load('relation');
}
Run Code Online (Sandbox Code Playgroud)

但这不正是我要找的。

还有另一种/最好的方法来加载所有的Auth::user()类关系吗?比如中间件之类的?

Rem*_*mul 6

您可以使用$with模型上的属性来声明应始终预先加载的关系。

文档

有时,您可能希望在检索模型时始终加载一些关系。为此,您可以在模型上定义 $with 属性:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Book extends Model
{
    /**
     * The relationships that should always be loaded.
     *
     * @var array
     */
    protected $with = ['author'];

    /**
     * Get the author that wrote the book.
     */
    public function author()
    {
        return $this->belongsTo('App\Author');
    }
}
Run Code Online (Sandbox Code Playgroud)