Php 从表中加载用户设置

Php 从表中加载用户设置,php,laravel,laravel-5.6,Php,Laravel,Laravel 5.6,在Laravel5.6中,我有一个带有用户id的设置表 我正在尝试将\App\User类与设置表链接 我有一个设置模型,具有以下功能: namespace App; use Illuminate\Database\Eloquent\Model; class settings extends Model { protected $table = "settings"; } 在我的\App\User.php文件中,我有以下函数: public function settings() {

在Laravel5.6中,我有一个带有
用户id
的设置表

我正在尝试将
\App\User
类与设置表链接

我有一个
设置
模型,具有以下功能:

namespace App;
use Illuminate\Database\Eloquent\Model;
class settings extends Model
{
    protected $table = "settings";
}
在我的
\App\User.php
文件中,我有以下函数:

public function settings() {
    $this->belongsTo(Settings::class);  
}
在该文件的顶部,我得到了
使用App\Settings

但是,当我在master.blade.php模板中运行以下代码时:

{{dd(auth()->user()->settings())}

我只得到
null
。为什么会这样?

在您的用户模型中:

public function settings() {
   return $this->belongsTo('App\Settings');  
}
在您的刀片中:

 {{ Auth::user()->settings }}
请尝试以下代码:

您的Setting.php模型:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Setting extends Model
{
    protected $fillable =['your_field1_name','your_field2_name','your_field_ect_name'];
    public function users() {
        return $this->hasMany('App\User');
    }
}
您的User.php模型:

<?php

namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
    protected $fillable =['your_field1_name','your_field2_name','your_field_ect_name'];
    public function settings() {
        $this->belongsTo('App\Setting');  
    }
}

您尝试过这样加载吗
auth()->user()->with('settings')
?@Ru在用户类中的何处执行此操作?否,从控制器。我在
app\http\controllers\auth
中没有用户控制器:(您使用了错误的关系。我使用了正确的关系。由于
设置
表中的
user\u id
,因此您应该使用
hasOne
关系。
user
有一个
设置
。另外,当您使用
settings()
查询将不会执行。使用
->settings
,如我在旧答案中所示。您好,我已将我的关系更改为
$this->hasOne(settings::class);
在user类中,在blade中我有
{{dd(Auth::user()->settings)}
。我收到错误
App\User::settings必须返回一个关系实例。
我没有
返回它!我将返回添加到函数中,它成功了。谢谢!这不可能对你有效,因为你在
settings
表中有
User\u id
。这只在你有
settings\u id时有效
用户
表中。