Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 关于表格中行为的混淆_Laravel - Fatal编程技术网

Laravel 关于表格中行为的混淆

Laravel 关于表格中行为的混淆,laravel,Laravel,我对Laravel相当陌生,我正在尝试使用资源控制器执行CRUD操作。我面临的问题是,在创建任务表单中,应该执行什么操作。让我给你一个概述,应用程序是如何设计的。我为MVC创建了单独的目录,如下所示: Todo_Model\Todo_Model.php Todo\U控制器\Todo\U控制器.php Todo_View\home.blade.php Todo_View\create.blade.php 路由:路由::资源('todo','todo_控制器\ todo_控制器') 路线:列表

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

  • Todo_Model\Todo_Model.php
  • Todo\U控制器\Todo\U控制器.php
  • Todo_View\home.blade.php
  • Todo_View\create.blade.php
路由:路由::资源('todo','todo_控制器\ todo_控制器')

路线:列表

控制器:

 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

<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>

{{csrf_field()}}
现在的问题是表单的
操作应该是
todo
,这可以在
路由:list
中看到,但是当我点击submit时,我得到了
方法notallowedHttpException
,并且显示的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

您将
操作
与laravel中的本机php相混淆

将您的
action=“../todo”
替换为
action=“{{url('todo')}}”


{{csrf_field()}}

您只需精确地指定路径,无需说明文件的实际位置,因此
action=“/todo”
可以正常工作

它对我不起作用。我已经试过了,按照规定,我得到了一个例外。非常感谢你的帮助。但是,我确信,如果我没有像在另一个项目中一样使用资源控制器,并且在那里工作得很好,那么我可以简单地使用
todo
。为什么会在这里产生问题?
<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>