Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 不使用标准';用户id';列名_Laravel_Eloquent - Fatal编程技术网

Laravel 不使用标准';用户id';列名

Laravel 不使用标准';用户id';列名,laravel,eloquent,Laravel,Eloquent,我有两个表,一个表有不同的列,根据授权级别记录不同的用户名。但我想把这两个链接在一起。目前,我尝试了以下方法: User.php public function approvals() { return $this->hasMany(Approval::class); } Approval.php public function qs() { return $this->belongsTo(User::class, 'id', 'q

我有两个表,一个表有不同的列,根据授权级别记录不同的用户名。但我想把这两个链接在一起。目前,我尝试了以下方法:

User.php

public function approvals()
    {
        return $this->hasMany(Approval::class);

    }
Approval.php

public function qs() {
        return $this->belongsTo(User::class, 'id', 'qs');
    }
index.blade.php

<td>{{ $approval->qs->name }}</td>
用户数据库结构

Schema::create('users', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->string('email', 100)->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });

我是否完全错了,qs表格列需要链接到users.id?

如果父模型不使用id作为主键,或者您希望将子模型连接到其他列,您可以将第三个参数传递给
belongsTo
方法:

public function qs() {
    return $this->belongsTo(User::class, 'foreign_key_here_from_child_table', 'custom_column_from_parent_table');
}

似乎
qs
user
模型的用户id。因此,与
批准
模型的关系为

public function qs() 
    {
        return $this->belongsTo(User::class, 'qs');
    }
用户
模型中

public function approvals()
    {
        return $this->hasMany(Approval::class, 'qs');

    }
现在你可以使用

{{ $approval->qs->name }}
Eloquent通过检查relationship方法的名称并在方法名称后面加上一个u,后跟主键列的名称来确定默认外键名称。但是,如果模型上的外键不是parent_id,则可以将自定义键名称作为第二个参数传递给belongsTo方法


您试图将用户与批准链接的外键是什么?请提供您的数据库结构。@zlatan我已经更新了此表结构。SSO用户应该链接到批准?我可以理解此操作的逻辑,但不理解为什么我仍然收到“试图获取非对象的属性‘名称’”错误。您是否按照我的回答建立了关系??还有一件事要做,就是尝试更改关系名称。
{{ $approval->qs->name }}