我希望能够修改 Laravel 5.6 使用的 Auth->user() 数据。我有一个名为设置的表,其中有一列名为 user_id
,对应于用户 ID。
我尝试修改 app\User.php
并添加 __construct
函数:
public function __construct() {
$this->settings = Settings::where('user_id',
Auth->user->id()
)->first();
}
我创建了一个文件app\Settings.php
,内容如下:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class settings extends Model
{
protected $table = "settings";
}
但是,我在 User.php
中的 Auth->user()->id
行收到用户错误,尽管我确信那是正确的如何引用它?
如何将数据从 settings
表加载到 User 类?
最佳答案
您可以使用load()
方法来延迟加载关系:
auth()->user()->load('settings');
每个请求只需执行一次此操作,例如在中间件中。然后您就可以在应用程序的任何部分使用这些数据:
{{ auth()->user()->settings->theme }}
当然,要实现此目的,您需要在 User
模型中定义关系,例如:
public function settings()
{
return $this->hasOne(Settings::class);
}
关于php - 使用 Laravel 5.6 加载用户设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48975150/