2015-11-11 2 views
0

Ошибка:Laravel: Попытка присвоить свойство не-объекта

Attempt to assign property of non-object; ErrorException in AdminController.php line 40: 

AdminController:

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

    if (Request::hasFile('image')) { 
     $imageName = Request::input('title'). '.' . 
      $request->file('image')->getClientOriginalExtension(); 

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

     $input->image = $imageName; //------------> line 40....... 

    } 
    $input->save(); 
} 

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> 

{!! Форма :: close() !!}

Я боролся с этим все утро. Я хочу иметь возможность принимать файлы вместе с информацией о форме. Переименование файла не нужно, просто как я думал, что могу заставить это работать. Есть ли лучший способ для загрузки и перемещения этого файла?

+0

Это строка 40 – Steve

+0

Я указал на строку 40 внутри контроллера администратора в вопросе. –

+0

А, я пропустил это. Сделал небольшое редактирование, поэтому подсветка синтаксиса делает его более очевидным. – Steve

ответ

1

Я изменил формат всего, и он сработал.

public function createSlider(AdminRequest $request) 
{ 
    $slider = new Sliders(array(
     'title' => $request->get('title'), 
     'description' => $request->get('description'), 
     'link' => $request->get('link') 
    )); 

    $slider->save(); 

    $imageName = $slider->title .'_gin_slider'. '.' . 
     $request->file('image')->getClientOriginalExtension(); 

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

    $slider->image = $imageName; 

    $slider->save(); 

    return redirect('/admin'); 
} 
+1

Отлично, рад, что у вас это работает, и это гораздо более читаемо. – Steve

Смежные вопросы