![]() |
1
11
您正在覆盖validate方法,这是一件坏事,因为内置行为会拒绝将带有验证错误的记录保存到数据库中。要添加自定义验证,请执行以下操作:
但是,HABTM关系的性质要求您将其作为“保存后”回调来执行。只是因为做事的顺序。
如果尝试作为回调的一部分进行验证(保存前、创建后等),则向对象添加错误不会触发回滚。回调只有在返回false时才会触发回滚。这将处理问题建议的保存实现后的问题。
另一个解决方案是使用显式连接模型。而且有很多:通过关系。联接模型的表在update语句中更新。Where as_many:through和HABTM关系在保存后更新关系。
HABTM隐式使用联接表,因此不需要在组端对其进行更改。
但是,您需要修改表单以更新表单,以便在params散列中提供group_id,如下所示:
|
![]() |
Zoli · Laravel 5.2:获取属于多个模型的模型 8 年前 |
|
erlandmuchasaj · 在HABTM复选框旁边显示图像 10 年前 |
![]() |
Robin Winton · HABTM联接表的机械化批量分配错误 12 年前 |