首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对形式上的行动的混淆

对形式上的行动的混淆
EN

Stack Overflow用户
提问于 2018-06-02 14:58:37
回答 2查看 16关注 0票数 0

我对Laravel相当陌生,我正在使用Resource Controller尝试CRUD操作。我面临的问题是,在创建任务表单时,action应该是什么。让我给您一个概述,应用程序是如何设计的。我为MVC创建了单独的目录,如下所示:

  • Todo_Model\todo_model.php
  • Todo_Controller\todo_controller.php
  • Todo_View\home.blade.php
  • Todo_View\create.blade.php

路线:路线::资源(“todo”,“Todo_Controller\todo_controller”);

路线:名单

主计长:

代码语言:javascript
复制
 public function index()
    {
        return view('Todo_View\home');
    }


    public function create()
    {
        return view('Todo_View\create');
    }


    public function store(Request $request)
    {
        $todo= new todo_model();
        $todo->title=$request->title;
        $todo->body=$request->body;
        $todo->save();
        return redirect('todo');

    }

create.blade.php

代码语言:javascript
复制
<form method="POST" action="../todo">
            {{csrf_field()}}
            <tr><td><input type="text" name="title" value="" placeholder="Title"></td></tr>
            <tr><td><input type="text" name="body" value="" placeholder="Body"></td></tr>
            <tr><td><input type="submit" name="submit" value="Submit"></td></tr>
 </form>

现在的问题是表单的action应该是todo,就像在route:list中可以看到的那样,但是当我点击submit时,我得到了MethodNotAllowedHttpException,显示的URL是http://localhost/laravel-7/blog/public/todo/todo。但是在打和试的过程中,我发现我应该使用表单动作作为../todo。我对为什么要使用这个操作感到非常困惑,因为它没有任何意义,因为在路由列表中,URI被明确地称为todo

另一点,当我访问索引页时,URI是http://localhost/laravel-7/blog/public/todo,当我从主页重定向创建页面时,URI是http://localhost/laravel-7/blog/public/todo/create

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-02 15:03:41

您在laravel中混淆了action和本机php。

action="../todo"替换为action="{{url('todo')}}"

代码语言:javascript
复制
<form method="POST" action="{{url('todo')}}">
            {{csrf_field()}}
            <tr><td><input type="text" name="title" value="" placeholder="Title"></td></tr>
            <tr><td><input type="text" name="body" value="" placeholder="Body"></td></tr>
            <tr><td><input type="submit" name="submit" value="Submit"></td></tr>
 </form>
票数 1
EN

Stack Overflow用户

发布于 2018-06-02 15:27:37

您只需要指定路由,不需要说明文件的实际位置,这样action="/todo"就可以正常工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50658160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档