laravel查找错误的表

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

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

namespace App;

use Illuminate\Database\Eloquent\Model;

class SizeProduct extends Model

{
    protected $table = 'size_product';

    protected $fillable = ['product_id', 'size_id'];
}

这是我的迁移:

class CreateSizeProductTable extends Migration
{

public function up()
{
    Schema::create('size_product', function (Blueprint $table) {
        //some code here
    });
}

public function down()
{
    Schema::dropIfExists('size_product');
}

但我还是有个错误:

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

yhuiod9q1#

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

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

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

相关问题