【发布时间】:2017-05-09 14:32:28
【问题描述】:
我发现创建复合外键很困难。我想要一个同时具有“movieid”和“cinemaid”作为复合外键的会话表。这是因为一个会话需要电影和电影院位置。
我当前的架构如下:
Schema::create('session', function (Blueprint $table) {
$table->increments('id');
$table->integer('movieId');
$table->integer('cinemaId');
$table->foreign(array('movieId', 'cinemaId'))->references(array('id', 'id'))->on(array('movies', 'cinema'));
$table->dateTime('time');
});
我找不到太多关于如何在 laravel 中创建复合外键的信息。我发现的最好的东西:
http://www.geexie.com/composite-primary-foreign-keys-laravel/
然而,在这个例子中,他们从一个表中提取两个外键,在我上面的例子中,你可以看到我需要从“movies”表和“cinemas”表中获取数据。我想也许使用 on(array('movies', 'cinema') 会起作用,但它会出现错误“数组到字符串转换”。
我试过删除 (array()) 部分,但它也不起作用。
如果我不打算使用复合外键,我也很乐意听到任何替代解决方案。
非常感谢,
杰克。
【问题讨论】: