Laravel中的关系模型?

时间:2014-07-07 11:46:51

标签: laravel

这个问题是关于Laravel的做事方式:

Laravel中的所有内容都可以以优雅的方式完成。

我目前通过名为mongrels的表格在breedsbreed_mongrel之间存在多对多关系,但此表格还有一个certainty值,用于说明狗是如何确定的他确实是那个特定品种的混合物。

mongrel_id | breed_id | certainty|
----------------------------------
| 1        | 4        | 50       |
| 1        | 2        | 25       |
| 2        | 5        | 75       |

这意味着杂种#1 50%肯定她是#4品种,25%肯定她也是品种#2的混合物。然而杂种#2是75%,确定他是#5品种。

我的问题是在此表中添加记录的优雅方式是什么? 我可以使用这样的东西:

DB::table('breed_mongrel')->insert(
array('mongrel_id' => 3, 'breed_id' => 5, 'certainty' => 37));

但是在Laravel中,我通常会更加雄辩地做一些事情:

$relation = new Relation;
$relation->breed_id = 1;
$relation->save();

但是因为它是一种关系而我不能遵循以单数驼峰caseform命名的普通模型和以复数形式命名的DB表(蜗牛)情况我不确定Laravelly是什么方式向这个数据库表添加条目?

1 个答案:

答案 0 :(得分:4)

您可以使用附加。它还接受第二个参数,允许将额外的值添加到数据透视表中。

$mongrel = Mongrel::find(1);
$breed   = Breed::find(4);
$mongrel->breeds()->attach($breed, array('certainty' => '50'));