当前位置: 首页 > 知识库问答 >
问题:

在laravel中从透视表中删除时出现问题

阎善
2023-03-14

我在删除订单时遇到问题:

这里是按取消删除订单的表单:

<form action="{{route('user.orders.delete', $order->id)}}" method="POST"
                                  onsubmit="return confirm('Are you sure?');">
                                @method('DELETE')
                                @csrf
                                <button
                                    type="submit" class="mt-8 mb-4 py-2 px-14 rounded-full
                                    bg-red-900 text-white tracking-widest hover:bg-blue-800
                                    transition duration-200">
                                    Cancel
                                </button>
                            </form>

这是我的路由器:

 Route::delete('user/orders/delete/{order}', [OrderController::class, 'delete'])->name('user.orders.delete');

>

  • OrderController:删除函数:

    公共函数delete(Order$Order){try{unlink(public_path().'/storage/orders/files/'.$Order-

          }
          return redirect()->back()->with('status', 'product deleted succefully');
      }
    

    因此,当点击按钮(取消)时,只需转到正确的url:when 21是订单id

    http://127.0.0.1:8000/user/orders/delete/21
    

    而且它只是找不到页面!!!没有删除任何内容!!!

  • 共有1个答案

    濮阳翔
    2023-03-14

    我认为你的应用程序路由被缓存了

    尝试运行fallowing命令(在cmd或terminal中)以查看所有路由,这将显示已注册的路由和错误(如果存在):

    php artisan route:list
    

    如果路由列表中不存在该路由,则可以缓存该路由列表。尝试使用fallowing命令清除路由缓存:

    php artisan route:clear
    

    然后运行应用程序并测试路由。

    如果在编码或命名变量方面没有其他问题,程序将得到正确修复

    *如果以上所有操作都正常,那么您的apache配置似乎没有配置为删除请求(对于路由删除方法),您必须进行更改。htaccess请求限制,如授予删除请求的休整示例:

    <Limit GET POST PUT DELETE>
      Allow from all
    </Limit>
    

    如你所见,DELETE方法(请求)已添加到. htaccess

     类似资料:
    • 我正在尝试使用复选框进行标记删除。假设用户有大约10个产品,每个产品都有3个不同的标签。 当前用户只能删除单个标记。每次标记删除后,页面刷新,他可以删除另一个标记。这不是真正的用户友好。这就是为什么我尝试对标记进行多重选择,并在单击一个按钮时删除所有选定的标记。 这就是它现在的样子: 我的问题是我需要产品id标签id来分离它们。 如果按delete(删除)按钮,则会将此数据传递到控制器: 主要的问

    • 我有一个有两个透视表的表单。其中一个工作很好,但我似乎不能使第二个工作,尽管他们是相当相似的。不起作用的是一个名为'photos'的图像表和名为'releases'的表单上载。我使用“photo_id”和一个“release_id”字段将数据透视表称为“photo_releases”。 数据库透视表 下面是发布模式 和照片模式 和ReleaseController 此函数中使用了两个透视表。使用

    • 我正在组装一个简单的购物车系统,使用Laravel和Vue.js,来出售照片。每张照片都有不同的尺寸,每个尺寸的价格都不同。 我有以下表格: 我正在使用Vue.js对我的购物车控制器进行API调用,以操纵购物车。当用户单击“添加到篮子”按钮时,它会传递照片id和大小id。当然,我想从数据库而不是客户端获取所选项目的价格,以防止任何无礼行为,这自然意味着查询pivot表。 我的问题是,使用传递给控制

    • 问题内容: 从视图中删除一行,是否会从创建该视图的基表中删除相应的行?我正在使用MySQL。 问题答案: 是的,它会的。唯一需要注意的是权限。 引用官方文档 有些观点是可更新的。也就是说,您可以在诸如UPDATE,DELETE或INSERT之类的语句中使用它们来更新基础表的内容。为了使视图可更新,视图中的行与基础表中的行之间必须存在一对一的关系。还有某些其他构造会使视图不可更新。

    • 我试图创建一个关系,通过一个名为年级的模型访问一个名为注释的表,通过年级中的学生加载 年级模型和学生模型都属于其他模型 根据我的理解,不可能访问需要透视表的hasManyThrough关系(注释没有年级标识符,只有学生标识符) 我为Laravel 4@HasManyThrough找到了这些函数,它们具有一对多关系,但它给了我一个错误类“App\illumb\Database\Eloquent\Re

    • 问题内容: 我想使用ajax删除记录。 视图 控制者 Ajax删除 编辑1 : 如果我只返回console.log(msg),这就是我得到的 事实是,这会删除产品,但只会删除第一行,而不是单击的行。 我要删除单击的产品。 有人可以帮忙吗? 问题答案: 您的问题在这里: 您将只获得第一个,因为您在所有按钮上使用重复的ID。因此,一个ID嘶嘶声查询将使您获得第一个。 如果您在删除控制器中的dd($ i