2

在 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。为什么是这样?

4

2 回答 2

2

在您的用户模型中:

public function settings() {
   return $this->belongsTo('App\Settings');  
}

在你的刀片中:

 {{ Auth::user()->settings }}
于 2018-02-27T10:26:31.103 回答
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

于 2018-02-27T10:37:34.603 回答