当前位置: 首页 > 知识库问答 >
问题:

当我建立一个有说服力的关系时,它会产生问题,我在这里展示我的代码,我使用tinker来查看关系,但它不会建立

高山
2023-03-14

当我建立一个有说服力的关系时,它会产生问题,我在这里展示我的代码,我使用tinker来查看关系,但它不会建立

pass.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class pass extends Model
{
    public function salman()
    {
        return $this->belongsTo(salman::class);
    }
}

salman.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class salman extends Model
{
    public function passport()
    {
        return $this->hasOne(pass::class);
    }
}

Illumb\Database\QueryException(42S22)SQLSTATE[42S22]:未找到列:1054个未知列“passes.salman_id”在“where子句”中(SQL:select*frompasseswheresalman_id=1和passessalman_id不是空限制1)

以前的例外

SQLSTATE[42S22]:未找到列:“where子句”(42S22)中的1054未知列“passs.salman_id”

共有2个答案

裴姚石
2023-03-14

在数据库表passes中,必须有一个名为salman\u id的列。

因此,在迁移文件中添加:

$table->unsignedInteger("salman_id");
毛淳
2023-03-14

发生此错误是因为Laravel默认查找salman_id(用于表salman)。

如果是,则可以指定自定义主键,如下所示。

更改此行:

    return $this->belongsTo(salman::class);

致:

    return $this->belongsTo(salman::class, 'id', 'id');  
 类似资料: