在Laravel 5.6中,我有一个设置表user_id
。
我正在尝试将\App\User
类与设置表链接。
我的Settings
模型包含以下内容:
namespace App;
use Illuminate\Database\Eloquent\Model;
class settings extends Model
{
protected $table = "settings";
}
在我的\App\User.php
文件中,我有以下功能:
public function settings() {
$this->belongsTo(Settings::class);
}
在该文件的顶部我已Uses App\Settings
。
但是当我在master.blade.php模板中运行以下代码时:
{{ dd(auth()->user()->settings()) }}
我得到null
。这是为什么?
答案 0 :(得分:2)
:
public function settings() {
return $this->belongsTo('App\Settings');
}
在你的刀片中:
{{ Auth::user()->settings }}
答案 1 :(得分:0)
尝试以下代码:
你的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');
}
}
注意:您的型号名称必须是单数
$ fillable:防止大规模分配。当用户通过请求传递意外的HTTP参数时,会发生批量分配漏洞,并且该参数会更改数据库中您不期望的列。
有关详细信息,请访问:https://laravel.com/docs/5.6/eloquent#eloquent-model-conventions