Php 从表中加载用户设置
在Laravel5.6中,我有一个带有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() {
用户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时有效
在用户
表中。