【问题标题】:Delete action is not working in laravel?删除操作在 laravel 中不起作用?
【发布时间】:2017-03-30 03:36:28
【问题描述】:

我有一个包含删除按钮的表单。

 <form method="post" id="delform" action="{{ url('/templates/delete',[$template->template_id]) }}">
    {{ method_field('DELETE') }}
  {{ csrf_field() }}

 <input type="submit" class="btn btn-danger" id="del" value="delete>

  </form>

然后在我的路线 web.php:

Route::delete('/templates/delete/{id}','TemplateController@delete');

当我点击删除时,我得到这个错误:

我在做什么,请帮忙?提前致谢

我在这里添加了我的 composer.json:

{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
    "php": ">=5.6.4",
    "laravel/framework": "5.4.*",
    "laravel/tinker": "~1.0",
    "maatwebsite/excel": "~2.1.0"        "rmccue/requests": ">=1.0"    },
"require-dev": {
    "fzaninotto/faker": "~1.4",
    "mockery/mockery": "0.9.*",
    "phpunit/phpunit": "~5.7"
},
"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/"
    }
},
"autoload-dev": {
    "psr-4": {
        "Tests\\": "tests/"
    }
},
"scripts": {
    "post-root-package-install": [
        "php -r \"file_exists('.env') || copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
        "php artisan key:generate"
    ],
    "post-install-cmd": [
        "Illuminate\\Foundation\\ComposerScripts::postInstall",
        "php artisan optimize"
    ],
    "post-update-cmd": [
        "Illuminate\\Foundation\\ComposerScripts::postUpdate",
        "php artisan optimize"
    ]
},
"config": {
    "preferred-install": "dist",
    "sort-packages": true
}
}

这是控制台日志:

【问题讨论】:

    标签: php forms laravel-5 delete-row


    【解决方案1】:

    您忘记使用双引号来关闭输入提交中的值

    <input type="submit" ... value="delete">
    

    和composer json中的逗号打包后:

    "maatwebsite/excel": "~2.1.0",
    

    最后,HTML 表单不支持 PUT、PATCH 或 DELETE 操作。因此,在定义从 HTML 表单调用的 PUT、PATCH 或 DELETE 路由时,您需要向表单添加隐藏的 _method 字段。 _method 字段发送的值将用作 HTTP 请求方法。

    <input type="hidden" name="_method" value="DELETE">
    

    您可以使用 method_field 帮助器来生成 _method 输入:

    {{ method_field('DELETE') }}
    

    Laravel routes documentation

    rest conventions

    【讨论】:

    • 感谢您的回复,我的 fom 中有隐藏字段
    • @Mikethetechy 尝试运行composer dumpautoload -o 并再次测试
    • 当我运行 composer dumpautoload -o 我得到这个错误 [Seld\JsonLint\ParsingException] "./composer.json" does not contain valid JSON Parse error on line 11: ...l": " ~2.1.0" "rmccue/requests": " ----------------------^ 预期之一:'EOF'、'}'、':' , ',', ']'
    • 请查看已编辑的问题添加到我的 composer.json
    • 你的json有太多错误...我会为你解决...等等!
    猜你喜欢
    • 1970-01-01
    • 2018-06-22
    • 2018-10-18
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2016-12-26
    相关资源
    最近更新 更多