我正在尝试建立自己的电子商务商店作为 Laravel 培训,我与模型 Item、ItemOption、ItemSize 和 ItemColor 建立了 hasManyThrough 关系。当我使用虚拟数据播种数据库时出现问题,我收到以下错误:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'ìtem_size_id' in 'field list' (SQL: insert into `item_options` (`item_id`, `item_color_id`, `ìtem_size_id`, `stock`) values (1, 1, 1, 10))
这是发生错误的种子文件:
<?php
use Illuminate\Database\Seeder;
use Carbon\Carbon;
class ItemOptionsSeeder extends Seeder
{
public function run()
{
//blancas
DB::table('item_options')->insert([ 'item_id' => 1, 'item_color_id' => 1, 'ìtem_size_id' => 1, 'stock' => 10 ]);
//negras
DB::table('item_options')->insert([ 'item_id' => 1, 'item_color_id' => 2, 'ìtem_size_id' => 2, 'stock' => 10 ]);
//rojas
DB::table('item_options')->insert([ 'item_id' => 1, 'item_color_id' => 3, 'ìtem_size_id' => 3, 'stock' => 10 ]);
//verdes
DB::table('item_options')->insert([ 'item_id' => 1, 'item_color_id' => 4, 'ìtem_size_id' => 4, 'stock' => 10 ]);
}
}
我想我正确地设置了关系和模型,我似乎找不到我的代码有什么问题,让我们从我的模型开始,然后是迁移:
楷模:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Item extends Model
{
protected $table = 'items';
public function options()
{
return $this->hasMany(ItemOption::class);
}
public function sizes()
{
return $this->hasManyThrough(ItemSize::class, ItemOption::class, 'item_size_id', 'id');
}
public function colors()
{
return $this->hasManyThrough(ItemColor::class, ItemOption::class, 'item_color_id', 'id');
}
}
茅侃侃
繁花不似锦