laravel查找错误的表

wmomyfyw  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(272)

我已经在模型类中指定了表名。拉威尔5.6,php 7

  1. namespace App;
  2. use Illuminate\Database\Eloquent\Model;
  3. class SizeProduct extends Model
  4. {
  5. protected $table = 'size_product';
  6. protected $fillable = ['product_id', 'size_id'];
  7. }

这是我的迁移:

  1. class CreateSizeProductTable extends Migration
  2. {
  3. public function up()
  4. {
  5. Schema::create('size_product', function (Blueprint $table) {
  6. //some code here
  7. });
  8. }
  9. public function down()
  10. {
  11. Schema::dropIfExists('size_product');
  12. }

但我还是有个错误:

  1. SQLSTATE[42S02]: Base table or view not found: 1146 Table 'db_name.product_size' doesn't exist
yhuiod9q

yhuiod9q1#

也许sizeproduct是您的数据透视表 manytomany 关系,如本文所述,透视表是根据相关模型名称的字母顺序派生的(因此在您的示例中,产品排在第一位)。
您可以在定义代码的关系中更改它:

  1. public function products()
  2. {
  3. return $this->belongsToMany(Size::class,'size_product');
  4. }

或者您可能更喜欢为透视表创建单独的迁移。

相关问题