Laravel表单与post方法未提交

时间:2019-07-31 09:53:13

标签: html laravel forms submit

我有一个张贴标题和正文的表格。当我提交时,什么也没发生。我有一个csrf字段,我正在使用post方法。

我尝试了多种不同的方式来声明操作和方法。我也尝试用不同的方式调用csrf字段。这些都不起作用。

路线:

Route::resource('/posts', 'PostsController');

Create.blade.php

<form action="{{route('posts.store')}}" method="POST">
    @csrf
    // removed @method('POST')
    <div class="form-group">
        <label for="title">Title</label>
        <input type="text" name="title" class="form-control" placeholder="Title">
    </div>
    <div class="form-group">
        <label for="body">Body</label>
        <textarea name="body" placeholder="Body" class="form-control" cols="30" rows="10"></textarea>
    </div>
    <input type="button" name="submit" value="Submit" class="btn btn-primary">
</form>

PostsController:

public function store(Request $request)
    {
        return "Form posted";
    }

发布模型:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    // 
}

这里我有所有可用的路线: php artisan route:list

PostsController中的存储功能为空。因此,我希望在提交时收到一个空白页,但是什么也没发生。

4 个答案:

答案 0 :(得分:0)

这是用于创建新的数据库注册表还是用于编辑现有的数据库注册表?

如果用于创建,请完全删除@method('POST')位。如果用于编辑,请将其更改为@method('PATCH')

答案 1 :(得分:0)

删除 @method('POST')

<form action="{{route('posts.store')}}" method="POST">
     {{ csrf_field() }}
    <div class="form-group">
        <label for="title">Title</label>
        <input type="text" name="title" class="form-control" placeholder="Title">
    </div>
    <div class="form-group">
        <label for="body">Body</label>
        <textarea name="body" placeholder="Body" class="form-control" cols="30" rows="10"></textarea>
    </div>
    <button type="submit" class="btn btn-primary"> Submit  </button>
</form>

在您的控制器中。

public function store(Request $request)
{
   echo '<pre>';
   print_r($request->all());
}

答案 2 :(得分:0)

dilip hirapara在评论中给出了解决方案。

我删除了:

<input type="button" name="submit" value="Submit" class="btn btn-primary"> 

并添加:

<button type="submit" class="btn btn-primary"> Submit </button>

答案 3 :(得分:0)

    <meta name="csrf-token" content="{{ csrf_token() }}">

将其放在头文件中。有时对于csrf,我们需要将其作为元标记。