当我建立一个雄辩的关系时,会在这里出现问题,我展示了我的代码,我使用修补匠来查看关系,但是它没有建立
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);
}
}
Illuminate \ Database \ QueryException(42S22) SQLSTATE [42S22]:找不到列:1054“ where子句”中的未知列“ passes.salman_id”(SQL:从
passes
中选择*,其中passes
。salman_id
= 1和{{ 1}}。passes
不能为空限制1)
以前的例外情况
SQLSTATE [42S22]:找不到列:1054'where子句'(42S22)中未知的列'passes.salman_id'
答案 0 :(得分:0)
在数据库表passes
中,必须有一个名为salman_id
的列。
因此,在您的迁移文件中添加:
$table->unsignedInteger("salman_id");
答案 1 :(得分:0)
发生错误是因为Laravel默认情况下会寻找salman_id
(用于表salman)。
如果是,则可以如下指定自定义主键。
更改此行:
return $this->belongsTo(salman::class);
收件人:
return $this->belongsTo(salman::class, 'id', 'id');