使用mySql,我创建了3个表:vehiclescarsbikes
carsbikes是表vehicles(子表)的特殊化。

vehicles有一个称为id的主键。

carsbikes没有主键。相反,它们还有一个名为id的字段,上面带有一个索引,其中包含与vehicles.id相同的值以用作外键。

php - Laravel的表特化-LMLPHP

我正在尝试使用Laravel 5.3框架,首先将新记录插入vehicles中,然后将新记录插入cars中,如下所示:

$id = Vehicle::create(['name'=>'volvo'])->id;
Car::create(['id'=>$id, 'nbDoors'=>4]);


我收到以下错误:


  Connection.php第770行中的QueryException:
  SQLSTATE [HY000]:常规错误:1364字段“ id”没有默认值(SQL:插入到carsnbDorrs)值(3))


是否有解决方案或更好的数据库设计,以便我可以在两个表中插入数据并保持这种专业化?

最佳答案

找到了解决方案:
我只是省略了将id添加到Car模型的可填充列中!

class Car extends Model
{
  /**
   * The attributes that are mass assignable.
   *
   * @var array
   */
  protected $fillable = ['id', 'nbDoors'];

关于php - Laravel的表特化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41525891/

10-12 20:08