【问题标题】:How can I fix error 404 for dropzone in laravel如何修复 laravel 中 dropzone 的错误 404
【发布时间】:2019-12-07 21:09:02
【问题描述】:

我想在 Laravel 中为一个带有 dropzone 的项目创建一个画廊 但我收到错误 404 .. 错误 404 经常发生在错误的路线上,但显然每件事都是正确的......

但我收到此错误

我的表格:

{
< form action="{{url('admin/gallery/upload?='.$project->id)}}" method="post" class="dropzone dz-clickable" id="myAwesomeDropzone">
}

我的路线:

Route::post('/admin/gallery/upload', 'admin\ProjectController@upload');

我的功能

     public function upload(Request $request ,$id){     
        $files=$request->file('file');
        $name=rand()."-".$id.$files->getClientOriginalName();
        $files->move('upload/gallery/'.$id.'/',$name);
        $gallery=new Gallery();
        $gallery->product_id=$id;
        $gallery->url=$name;
        $gallery->save();
    }

【问题讨论】:

  • URL 发布到admin/gallery/upload?='.$project-&gt;id,但路由是/admin/gallery/upload。尝试将其更改为/admin/gallery/upload/*

标签: php laravel laravel-5 dropzone


【解决方案1】:

URL 似乎与路由不匹配。尝试使用 POST 路由中的变量而不是 ?= 语法。

表格:

< form action="{{url('admin/gallery/upload/'.$project->id)}}" method="post" class="dropzone dz-clickable" id="myAwesomeDropzone">

路线:

Route::post('/admin/gallery/upload/{id}', 'admin\ProjectController@upload');

【讨论】:

    【解决方案2】:

    为路由使用绑定和设置名称以获得更好的编码和更高的可读性。

    路线:

    Route::post('/admin/gallery/{project}/upload', 'admin\ProjectController@upload')->name('upload.gallery');
    

    表格:

    <form action="{{ route('upload.gallery',['project'=>$project]) }}" method="post" class="dropzone dz-clickable" id="myAwesomeDropzone">
    

    控制器中的方法:

     public function upload(Request $request ,Project $project){
    
        $files=$request->file('file');
        $name=rand()."-".$id.$files->getClientOriginalName();
        $files->move('upload/gallery/'.$project->id.'/',$name);
        $gallery=new Gallery();
        $gallery->product_id=$project->id;
        $gallery->url=$name;
        $gallery->save();
    }
    
    

    【讨论】:

    • OP 不需要项目对象,只需要id。在这种情况下,不值得注入项目模型的开销。
    【解决方案3】:

    如果只需要 id 而不需要功能中的 $project 对象,请执行以下操作:

    路线:

    Route::post('/admin/gallery/{id}/upload', 'admin\ProjectController@upload')->name('upload.gallery');
    

    表格:

    <form action="{{ route('upload.gallery',['id'=>$project->id]) }}" method="post" class="dropzone dz-clickable" id="myAwesomeDropzone">
    

    控制器中的方法:

     public function upload(Request $request ,$id){
    
        $files=$request->file('file');
        $name=rand()."-".$id.$files->getClientOriginalName();
        $files->move('upload/gallery/'.$id.'/',$name);
        $gallery=new Gallery();
        $gallery->product_id=$id;
        $gallery->url=$name;
        $gallery->save();
    }
    
    

    【讨论】:

      猜你喜欢
      • 2020-01-14
      • 1970-01-01
      • 1970-01-01
      • 2020-03-07
      • 1970-01-01
      • 2019-10-23
      • 1970-01-01
      • 2020-09-05
      • 2017-08-07
      相关资源
      最近更新 更多