从 table 加载用户设置
Load user settings from table
在 Laravel 5.6 中,我有一个设置 table 和 user_id
。
我正在尝试使用设置 table.
link \App\User
class
我有一个 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
。这是为什么?
在您的用户模型中:
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');
}
}
注意:您的型号名称必须是单数
$fillable:防止mass-assignment。 mass-assignment 漏洞发生在用户通过请求传递意外的 HTTP 参数时,并且该参数更改了您未预料到的数据库中的列。
欲了解更多信息,请访问:https://laravel.com/docs/5.6/eloquent#eloquent-model-conventions
在 Laravel 5.6 中,我有一个设置 table 和 user_id
。
我正在尝试使用设置 table.
link\App\User
class
我有一个 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
。这是为什么?
在您的用户模型中:
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');
}
}
注意:您的型号名称必须是单数
$fillable:防止mass-assignment。 mass-assignment 漏洞发生在用户通过请求传递意外的 HTTP 参数时,并且该参数更改了您未预料到的数据库中的列。
欲了解更多信息,请访问:https://laravel.com/docs/5.6/eloquent#eloquent-model-conventions