2017-11-08 12 views
0

ファイルをアップロードするフォームを作成しましたが、送信時にnull値を返します。 enctype = "multipart/form-data"を追加すると、ページがリロードされ、コントローラを経由しないように見えます。

MY HTMLのFORM

<form class="form-horizontal" role="form" name="importform" method="POST" action="{{ route('import_type') }}" enctype="multipart/form-data"> 
{{ csrf_field() }} 
<div class="control-group"> 
    <label class="control-label">&nbsp;</label> 
<div class="controls"> 
<div class="control-group text-center"> 
    <label class="btn btn-primary" for="file-selector"> 
    <input id="file-selector" name="template_upload" type="file" value="" required autofocus style="display:none" onchange="$('#upload-file-info').html(this.files[0].name)" required>         Upload List    </label> 
    <span class='label label-default' id="upload-file-info"></span> 
    </div> 
    </div> 
    </div> 
    <div class="control-group"> 
    <div class="controls"> 
    <input class="btn btn-primary" type="submit" id="import-submit" name="import-submit"> 
    </div> 
    </div> 
    </form> 

MY CONTROLLER:私は、ここでインポート方法

<?php 

namespace App\Http\Controllers; 
use Illuminate\Http\Request; 
use App\Http\Requests\ImportTypeRequest; 
use \App\Guest; 
use \App\Role; 
use \App\User; 
use \App\Type; 
use Illuminate\Support\Facades\Auth; 



class GuestController extends Controller 
{ 
    /** 
    * Display a listing of the resource. 
    * 
    * @return \Illuminate\Http\Response 
    */ 
    public function index() 
    { 

     $user = User::with('roles')->where('id', Auth::id())->get(); 
     $types = Type::where('user_id', Auth::id()) 
      ->where('active',1)->get(); 


     return view('view_import',compact('user','types')); 

    } 

    public function import(ImportTypeRequest $request) 
    { 


     $template_upload = $request->file('template_upload'); 
     dd($template_upload); 
    } 
} 
+0

経路定義を共有できますか? –

+1

'ImportTypeRequest'には何がありますか? – Ohgodwhy

+0

ImportTypeRequestをデフォルトのRequestに置き換えて、動作しているかどうか確認できますか?それが動作している場合は、ImportTypeRequestに何かがあり、要求がインポートアクションに入ることができません。 –

答えて

0

を使用していますが、これを解決しようとするいくつかの提案の方法があります。

まず、インポート方法では、dd($request->all())を先頭に追加し、どのような応答が表示されるかを確認してください。すべてのフォームデータと、もちろんtemplate_uploadファイルが表示されます。これはフォームからコントローラメソッドまでのすべての来るデータを確認する方法です。

次に、ImportTypeRequestを取り除き、Illuminate\Http\Requestを使用して何が得られるかを確認してください。結果が異なる場合は、ImportTypeRequestクラスに問題があります。

次に、$request->template_uploadを使用してください。それは私が推測するよりクリーンです。

+0

ありがとう、私のImportTypeRequestに問題がありました。私のリクエストファイルのルールは配列を返さなかった。 – Taps101