首页 文章

Laravel中的关系模型?

提问于
浏览
0

这个问题是关于Laravel做事的风格:

Laravel的一切都可以以优雅的方式完成 .

我目前通过一个名为 breed_mongrel 的表在 mongrelsbreeds 之间有多对多的关系,但是这个表也有一个 certainty 值,描述了狗是如何确定他确实是该特定品种的混合物 .

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

这意味着杂种#1 50%肯定她是#4品种,25%肯定她也是品种#2的混合物 . 然而杂种#2是一个百分之七十五,确定他是#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 回答

  • 4

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

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

相关问题