2015-11-11 70 views
0

我試着做一個提交一份文件,表單提交,但是我不斷收到此錯誤:Laravel:試圖讓文件輸入非對象的屬性

錯誤:

Trying to get property of non-object 
at HandleExceptions->handleError('8', 'Trying to get property of non-object', '/Users/plastics1509moore/Desktop/elephant_gin/app/Http/Controllers/AdminController.php', '33', array('request' => object(Request), 'input' => array('_token' => 'y0ExMD4FoH3y1hRX61IOvMW520rn7AEx0UOzrc2R', 'title' => 'lol', 'description' => 'picture of gin one', 'link' => 'www.google.com', 'image' => object(UploadedFile)))) in AdminController.php line 33 

我有文件設置爲true。問題的要求都是?

這裏是控制器功能:

public function createSlider(Request $request) 
{ 
    $input = Request::all(); 
    if (Input::hasFile('image')) { 
     $imageName = $input->id . '.' . 
      $request->file('image')->getClientOriginalExtension(); 

     $request->file('image')->move(
      base_path() . '/public/assets/image/', $imageName 
     ); 

     $input->image = $imageName; 

    } 
    Sliders::create($input); 
    return redirect('/admin'); 
} 

HTML

{!!Form::open(array('url' => 'admin/new_slider', 'files' => true)) !!} 
    <div class = "form-group"> 
     {!!Form::label('title', 'Title:', ['class' => 'control-label']) !!} 
     {!!Form::text('title', null, ['class'=> 'input-mini ina tch'])!!} 

     {!!Form::label('title', 'Description:', ['class' => 'control-label']) !!} 
     {!!Form::text('description', null, ['class'=> 'input-mini '])!!} 
    </div> 

    <div class = "form-group"> 
     {!!Form::label('title', 'Link:', ['class' => 'control-label']) !!} 
     {!!Form::text('link', null, ['class'=> 'input-mini'])!!} 

     {!!Form::label('title', 'Image:', ['class' => 'control-label']) !!} 
     {!! Form::file('image', ['id' => 'imgInp', 'class' => 'prev-upload']) !!} 
    </div> 
    <div class = "form-group"> 
     {!!Form::submit('Submit', ['class'=> 'btn btn-default'])!!} 
    </div> 

{!! Form::close() !!} 
+0

使用'get_class()'知道,如果你使用了正確的類對象,誤差不說謊這是事實,但如何注意它有很多方法,只有你能找到。 –

+1

什麼是完整的錯誤信息?這應該表明變量和行號 – Steve

+0

啊是它的第33行,這是嘗試獲取輸入的ID ...但因爲它沒有被製成它沒有一個ID。我想? –

回答

1

您正試圖獲得來自輸入id。你的表格沒有通過任何id,所以很自然,你的輸入將不會有id

您可以先產生滑動,然後得到滑塊這樣的ID:

public function createSlider(Request $request) 
{ 
    $input = Request::all(); 

    // Create slider 
    $slider = Sliders::create($input); 

    if (Input::hasFile('image')) { 

     // Use the slider id 
     $imageName = $slider->id . '.' . 
      $request->file('image')->getClientOriginalExtension(); 

     $request->file('image')->move(
      base_path() . '/public/assets/image/', $imageName 
     ); 

     $input->image = $imageName; 

    } 
    return redirect('/admin'); 
} 
相關問題