Laravel表单未提交

时间:2017-11-27 00:38:33

标签: php forms laravel

我一直在Laravel中制作表单,作为youtube上的博客教程的一部分:https://www.youtube.com/watch?v=kmCtXryFwDc。我正在使用Laravel 5.3和Firefox。我已经创建了一个表单,该表单应该提交更新,以更新博客站点上的帖子。当我单击提交按钮时,我的浏览器中没有任何反应。它的行为没有区别,如果我的提交按钮只有css应用于它而没有其他属性或锚标签。

我忘记了这里简单的事情,还是我刚刚切换到的新版Firefox有什么奇怪的东西?

帖/ update.blade.php:

@extends('main')

@section('title', '| Edit Post')

@section('stylesheets')

    <link href="{{ secure_asset('css/parsley.css') }}" rel="stylesheet">

@endsection

@section('content')

<div class="form" method="POST" action="{{ route('posts.update', $post->id) }}">
    <div class="row">
        <div class="col-12 col-md-8">
            <input type="text" class="form-control" name="title" value="{{ $post->title }}"/>
            <hr>
            <textarea class="form-control" name="body" rows="10">{{ $post->body }}</textarea>
        </div>

        <div class="col-12 col-md-4">
            <div class="card border-light text-center">
                <div class="card-header"><strong>Post Info</strong></div>
                <div class="card-body">

                    <dl class="row end">
                        <dt class="col-4">Created:</dt>
                        <dd class="col-8">{{ date('M j, Y g:i', strtotime($post->created_at)) }}</dd>

                        <dt class="col-4">Updated:</dt>
                        <dd class="col-8">{{ date('M j, Y g:i', strtotime($post->updated_at)) }}</dd>
                    </dl>

                    <hr>

                    <div class="row">
                        <div class="col-12 col-sm-6">
                            <button type="submit" class="btn btn-success btn-block">Update</button>
                        </div>
                        <div class="col-12 col-sm-6">
                            <a href="{{ route('posts.destroy', $post->id) }}" class="btn btn-info btn-block">Cancel</a>
                        </div>

                        {{ Form::token() }}
                        {{ method_field('PUT') }}  <!-- generates hidden field that sets the form method to PUT because HTML5 doesn't support it -->
                    </div>

                </div>

            </div>
        </div>
    </div>
</div>

@stop

@section('scripts')

    <script src="{{ secure_asset('js/parsley.min.js') }}"></script>

@stop

1 个答案:

答案 0 :(得分:0)

<div class="form" method="POST" action="{{ route('posts.update', $post->id) }}">

将其更改为

<form class="form" method="PUT" action="{{ route('posts.update', $post->id) }}">

如果这是表单,则必须以表单标记开头。

同样在laravel框架中,您可以使用laravel集体表单。这是docs