gpt4 book ai didi

php - 未找到列 : 1054 Unknown column 'id' in 'where clause' - Laravel

转载 作者:行者123 更新时间:2023-11-29 10:33:57 24 4
gpt4 key购买 nike

这方面存在很多问题,但我正在按照其他相关 S.O 问题中所述的确切程序来解决此问题,但我遇到了相同的错误。

商店

public function products()
{
return $this->hasMany('App\Product');
//->withTimestamps();
}

产品

public function shop()
{
return $this->belongsTo('App\Shop');
//->withTimestamps();
}

这就是我的架构的样子

    Schema::create('products', function (Blueprint $table) {
$table->increments('product_id');
$table->integer('shop_id')->unsigned()->nullable();
$table->foreign('shop_id')->references('id')->on('shops');

$table->timestamps();
);

Controller

$products = new Product(array(
'name' => $request->('name');
));

$shop->products()->save($products);

将表单数据提交到产品表后,我收到错误未找到列:1054“where 子句”中的未知列“id”。默认情况下,Laravel 似乎将 id 作为我的主键,但它是 product_id

在我的模型中,我指定了 protected $primaryKey = 'product_id' 但它无法解决我的问题。我做了什么不同的事情?

最佳答案

在关系中,当主键不称为 id 时,您必须指定主键的名称,尝试像这样更改模型:

购物

public function products()
{
return $this->hasMany('App\Product', 'product_id');
//->withTimestamps();
}

产品

public function shop()
{
return $this->belongsTo('App\Shop', 'product_id');
//->withTimestamps();
}

在文档中解释了它的工作原理: https://laravel.com/docs/5.5/eloquent-relationships#one-to-many

关于php - 未找到列 : 1054 Unknown column 'id' in 'where clause' - Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46853988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com