php - Laravel 中同一模型的多个关系

标签 php laravel eloquent laravel-5

我在 Eloquent 中有多对多关系。

架构:

templates       modules         module_template
- id            - id            - module_id
- name          - content       - template_id
                                - order

但是,我需要使单个模板可以多次包含相同的模块。我该怎么做?

示例module_template:

module_id | template_id | order
1         | 42          | 1
4         | 42          | 2
1         | 42          | 3

$template->modules()->detach($moduleId)detach与模型的所有关系,对吗?假设甚至可以附加它们。

最佳答案

您可以附加多次,没有问题。但是 detach 将删除所有关联。 (当然,您的表不能应用 FK1,FK2 唯一/主要约束)

但是,不用担心:)您仍然可以手动完成:

$moduleId = 1;

$template->modules()
   ->newPivotStatementForId($moduleId)
   ->where('order', 3)
   ->delete()

关于php - Laravel 中同一模型的多个关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29917154/

相关文章:

php - 在 Laravel Eloquent 中访问数据透视表 "3rd Model relationship"

php - 何时关闭 Prepared Statement

php - 应该将 phpunit 还是 lime 与 symfony 一起使用?

mysql - 在 HeidiSQL 中执行查询时与 only_full_group_by 相关的错误

javascript - 将变量从路线传递到 Blade View

php - 没有连接 : Potential Security Issue laravel localhost on mac

php - 扩展 attach() 方法?

php - 谷歌应用内支付 : howto to handle Google's postback JWT

PHP 向传递给 mysql_query 的字符串添加乱码

php - Codeigniter/Eloquent 选择但不插入