提交数据,错误:Symfony \组件\ HttpKernel \ Exception \ MethodNotAllowedHttpException没有消息

时间:2018-11-27 04:57:30

标签: laravel

<form action="upload_creation" method="post">
<div class="modal-footer">
    <button type="button" class="btn btn-link" data-dismiss="modal">Cancel</button>
    <button type="submit" class="btn btn-primary">Send</button>
</div>
</form>

这是我的表单代码,我想使用按钮提交文件

public function upload_creation(Request $request){
    $input = $request->all();
    $creation = $this->creationRepository->create($input);
    foreach($request->file('direktori_gambar') as $image)
        {
            $name=time().$image->getClientOriginalName();
            $image->move(public_path().'/public/img', $name);
            $input['pictureName']=$image->getClientOriginalName();
            $input['pictureFile']='/public/img/'.$name;
            $mediaUkm = $this->creationPictRepository->create($input);   
        }     
    return view('webgallery.desktugas')->with($this->data);

这是我以动作形式指代的控制器

我单击提交按钮后,它在laravel上显示为无消息错误

知道如何解决此问题吗?

4 个答案:

答案 0 :(得分:0)

这是您在web.php文件夹中的routes/中的路线。

首先在web.php中创建路由

web.php

Route::post('upload-creation', 'CreationController@newCreation')->name('upload-creation');

并以表格的形式使用路由名称对文件提交执行操作

<form action="{{route('upload-creation')}}" method="post">
{{ csrf_field() }}
<div class="modal-footer">
    <button type="button" class="btn btn-link" data-dismiss="modal">Cancel</button>
    <button type="submit" class="btn btn-primary">Send</button>
</div>
</form>

答案 1 :(得分:0)

您在模板的<form>中使用哪种方法?

如果路线为post()(就像您的路线一样),那么您还需要POST作为表单中的方法。

如果您在<form>-Tag中使用POST作为方法,请查看是否有一个称为_method的隐藏输入字段。

更多详细信息在这里 https://laravel.com/docs/5.5/routing#form-method-spoofing

答案 2 :(得分:0)

您需要在表单中添加隐藏的输入,以包含csrf令牌。

Laravel 5.6、5.7

<form action="upload_creation" method="post">
    @csrf
    <div class="modal-footer">
        <button type="button" class="btn btn-link" data-dismiss="modal">Cancel</button>
        <button type="submit" class="btn btn-primary">Send</button>
    </div>
</form>

来源:https://laravel.com/docs/5.7/csrf

对于较旧的laravel版本,语法略有不同:

{{ csrf_field() }}

答案 3 :(得分:0)

在表单标签中使用enctype =“ multipart / form-data” 示例:

也不要忘记添加{{csrf_field()}}