Php 添加表单上不匹配的标记laravel

Php 添加表单上不匹配的标记laravel,php,mysql,laravel,Php,Mysql,Laravel,我有这个表单来创建一篇新文章。用户正确地输入了所有内容,但在VerifyCsrfToken.php第53行中返回了标记不匹配异常:。我看到另一篇帖子说,因为我使用了OpenForm标签,它已经为我添加了这个,并将其删除。我怎么把这个拿出来?还是我忽略了其他一些问题 这是我的控制器 public function store( AddArticleController $request) { $request= $request->all(); $request['user_

我有这个表单来创建一篇新文章。用户正确地输入了所有内容,但在VerifyCsrfToken.php第53行中返回了
标记不匹配异常:
。我看到另一篇帖子说,因为我使用了OpenForm标签,它已经为我添加了这个,并将其删除。我怎么把这个拿出来?还是我忽略了其他一些问题

这是我的控制器

public function store( AddArticleController $request)
{
    $request= $request->all();
    $request['user_id']=Auth::id();
    Article::create($request->all());


    return redirect('/user');
}
这是html

<form class="form-horizontal" role="form" method="POST" action="{{ url('/article/add') }}">
                {!! Form::open(
                array(
                'class' => 'form',
                'novalidate' => 'novalidate',
                'files' => true)) !!}
                <div class = "form-group">
                    {!! Form::label('title','Title:', ['class' => 'col-md-4 control-label']) !!}
                    <div class="col-md-6">
                    {!! Form::text('title',null, ['class' => 'form-control']),  !!}

                    </div>
                </div>
                <div class = "form-group">
                    {!! Form::label('title','Image:', ['class' => 'col-md-4 control-label']) !!}
                    <div class="col-md-6">
                        {!! Form::file('image') !!}
                    </div>
                </div>
                <div class="form-group">
                    {!! Form::label('title','Type:', ['class' => 'col-md-4 control-label']) !!}
                    <div class="col-lg-1">
                    {!! Form::select('type', array('select' => 'select','fashion' => 'Fashion', 'music' => 'Music', 'dance' => 'Dance', 'event' => 'Event'))!!}
                    </div>

                </div>
                <div class = "form-group">
                    {!! Form::label('body','Comment:', ['class' => 'col-md-4 control-label']) !!}
                    <div class="col-md-6">
                        {!! Form::textarea('body',null, ['class' => 'form-control']) !!}
                    </div>
                </div>
                <div class = "form-group">
                    {!! Form::label('body',' ', ['class' => 'col-md-4 control-label']) !!}
                        <div class="col-md-6">
                    {!! Form:: submit('Sumbit', ['class' => 'btn btn-primary form-control']) !!}
                        </div>
                    </div>
                {!! Form::close() !!}
            </form>

{!!Form::open(
排列(
“类”=>“形式”,
“novalidate”=>“novalidate”,
“文件”=>true))
{!!Form::label('title','title:',['class'=>'col-md-4控件标签]])
{!!Form::text('title',null,['class'=>'Form control']),!!}
{!!Form::label('title','Image:',['class'=>'col-md-4控件标签])
{!!Form::file('image')!!}
{!!Form::label('title','Type:',['class'=>'col-md-4控件标签]])
{!!Form::select('type',array('select'=>'select','fashion'=>'fashion','music'=>'music','dance'=>'dance','event'=>'event'))
{!!Form::label('body','Comment:',['class'=>'col-md-4控件标签]])
{!!Form::textarea('body',null,['class'=>'Form control'])
{!!Form::label('body','',['class'=>'col-md-4控制标签]])
{!!表单::提交('Sumbit',['class'=>'btn btn主表单控件]])
{!!Form::close()!!}

您应该从代码中删除
标记或
{{{Form::open()}}


Laravel的表单生成器(自Laravel 5以来已被去除污点)允许您编写语法
{{{form::open()}}
,该语法被呈现为纯html标记

所以在你的情况下,正确的方法是

<form class="form form-horizontal" novalidate="novalidate" enctype="multipart/form-data" role="form" method="POST" action="{{ url('/article/add') }}">
{!! csrf_token() !!}     // note that in this case we need to put csrf token manuall

......
</form>

首先,您使用哪一版本的Laravel

Laravel的HTML助手已在Laravel版本5中删除,现在未更新。如果您仍然想使用此帮助程序,我建议您使用社区更新的版本


对于您的问题,如果您不使用帮助程序,则需要手动添加令牌,方法是在表单中添加
{!!csrf_token()!!}
。您可以在文档中找到更多信息:

现在当我添加令牌时,它告诉我方法all不存在?在一切正常之前,如果我省略了用户id部分。这意味着什么?哪个
all()
方法?根据你的要求?我相信我使用的是最新的5种$请求=$request->all()$请求['user_id']=Auth::id();文章::创建($request->all());
{!! Form::open(['action' => url('/article/add'), 'novalidate' => 'novalidate' 'files' => true, 'class' => 'form form-horizontal']) !!}
... //your fields and you don't have to explicitly include csrf token. Form::open() will do that for you
{!! Form::close() !!}