Appel à une fonction membre getClientOriginalExtension() sur un non-objet, même avec 'fichier' => true

Je reçois un Appel d'une fonction membre getClientOriginalExtension() sur un non-objet", même si j'ai pris des conseils que j'ai trouvé pour l'éliminer, y compris l'ajout de 'fichiers' => true pour ma {{ Form::open }}.

Une idée de ce que l'étape je suis arriver de mal?

MODIFIER voici mon routage

Route::resource('/contractors', 'ContractorController');
Route::controller('/contractors', 'ContractorController');
Route::post('/contractors/portfolio/{$id}', 'ContractorController@post_Portfolio');

Voici mon controller:

public function post_Portfolio($id)
    {

    $contractor = Contractor::find($id);
    $input = Input::all();
    $rules = array(
      'fileToUpload' => 'image|max:3000',
  );

  $validation = Validator::make($input, $rules);

  if ($validation->fails())
  {
    return Response::make($validation->errors->first(), 400);
  }
    $file = Input::file('filesToUpload');
    $destinationPath = 'uploads/portfolio';
    $extension = $file->getClientOriginalExtension(); 
    $filename = str_random(12).".{$extension}";
    $upload_success = Input::file('filesToUpload')->move($destinationPath, $filename);

    if( $upload_success ) { 

        //create a new portfolio and transfer the inputs to the db

        $portfolio = new Portfolio;
        $contractor = Contractor::find($id);
        $portfolio->title       = Input::get('title');
        $portfolio->description     = Input::get('projectDetails');
        $portfolio->contractor_id   = Input::get('contractor_id');
        $portfolio->save();

        $photo = new ContractorPhoto;
        $photo->portfolio_id = $portfolio->id;
        $photo->path = $destinationPath ."/". $filename;
        $photo->save();

        //redirect
        Session::flash('message', 'Successfully updated profile!');
        return Redirect::to('contractors/');

    } else {
        Session::flash('message', 'Houston we have a problem!');
        return Redirect::to('contractors/'); 
    }



}

Et voici mon avis:

<div class="span8 bdb bdb-larger">
{{ Form::open(['url' => 'contractors/portfolio/{$id}','files' => true, 'method' => 'post', $contractor->id]) }}
<input type="hidden" name="contractor_id"  value="{{$contractor->id}}">
<div class="row">
<div class="span6">
<label for="title">Project Name<span class="required">*</span></label>
<input type="text" name="title" id="title">
<input type="hidden" name="contractor_id"  value="{{$contractor->id}}">
</div>
</div>
<div class="row">
<div class="span6">
<label for="projectDetails">Project Details <span class="required">*</span></label>
<textarea name="projectDetails" class="row-fluid" id="projectDetails"></textarea>
</div>
</div>
<div class="row">
<div class="span6">
<div> 
<label for="filesToUpload">Cover Photo</label>
<input class="filestyle" type="file" name="filesToUpload[]" id="filesToUpload" multiple="multiple" />
<script>$(":file").filestyle({classInput: "input-small"});</script>
</div> 
</div>
</div>
<div class="row">
<div class="span6">
<br />
<div> 
<label for="photos">Additional Photos</label>
<input class="filestyle" type="file" name="filesToUpload[]" id="filesToUpload" multiple="multiple" />
<script>$(":file").filestyle({classInput: "input-small"});</script>
</div> 
</div>
</div>
<div class="row">
<div class="span6">
<output id="filesInfo"></output>
</div>
</div>
<div class="row">
<div class="span6">
<br /><input type="submit" id="btn-porfolio" class="btn btn-primary btn-read-more" value="Submit">
</div>
</div>
</div>
{{form::close()}}
</div> 

{{ HTML::script('assets/js/scripts/portfolio.js') }}

InformationsquelleAutor retrograde | 2014-04-05