【问题标题】:How to Delete Related Data from pivot table in Laravel Voyager如何从 Laravel Voyager 中的数据透视表中删除相关数据
【发布时间】:2019-05-16 16:32:49
【问题描述】:

enter image description here我在 Voyager 和 BREAD 中制作了 3 张桌子(新闻 - catg - news_catg)。 我的“新闻”表与“catg”有关系(属于多个),而 news_catg 是数据透视表 除了删除我必须手动从数据透视表中删除记录之外,每个想法都有效,它应该是自动的,就像添加和更新一样

【问题讨论】:

  • 为什么要手动删除数据,你没有casecade delete吗?
  • 请分享您的迁移文件代码
  • 它为 ex 添加和更新工作:我添加 1 个新闻,其中 3 个 catg 它的工作和更新也是,但删除:(
  • 不看你的表结构和索引我会怎么说?
  • 我所有的迁移文件?

标签: laravel voyager


【解决方案1】:

最后我发现 Voyager 中存在错误,并且无法从管理面板解决此问题,所以我做了流动:

1 - 删除数据透视表。

2- 在我的应用中创建新的迁移文件

3 -

`   Schema::create('Relation table name', function (Blueprint $table) {
            $table->integer('first table id')->unsigned();
            $table->foreign('first table id')->references('id')
                  ->on('first table')->onDelete('cascade');
            $table->integer('second table id')->unsigned();
            $table->foreign('second table id')->references('id')->on('second table');
        });`

关系表名应该是这样的:secondtablename_firsttablename 例如:catgs_news 或者它不会工作! 并且第一个表id应该是tablename_id,比如news_id

4- 然后你去 voyager,它会工作,但你必须编辑新表并添加时间戳,你不必为它做面包

【讨论】:

    【解决方案2】:

    您可以使用 detach() 函数从数据透视表中删除数据。

    【讨论】:

    • 好的,但是我必须将 detach() 函数与这个 voyager 放在哪里
    猜你喜欢
    • 1970-01-01
    • 2021-10-23
    • 2015-02-11
    • 2020-01-06
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    • 2021-06-03
    • 1970-01-01
    相关资源
    最近更新 更多