我希望能够修改Laravel 5.6使用的Auth-> user()数据。我有一个名为settings的表,其中包含一个名为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";
}
但是我在Auth->user()->id
的{{1}}行收到了用户错误,但我确定这是引用它的正确方法吗?
如何将User.php
表中的数据加载到User类?
答案 0 :(得分:4)
您可以使用load()
方法延迟加载关系:
auth()->user()->load('settings');
每个请求只需要在中间件中执行一次这样的操作。然后,您就可以在应用的任何部分使用数据:
{{ auth()->user()->settings->theme }}
当然,为了完成这项工作,您需要在User
模型中定义关系,例如:
public function settings()
{
return $this->hasOne(Settings::class);
}