Laravel插入没有选择文件的数据

时间:2014-03-29 14:52:52

标签: php image laravel

好的,当在数据库中插入数据时,我的字段形式是图像,但是如果插入没有图像的数据,则会出现以下错误。

  

在非对象

上调用成员函数getClientOriginalName()
public function store() {
$unos = Input::all();

$obavezno = array('name' => 'required', 
                  'number' => 'required|unique:os',
                  'zajednica' => 'required',
                  'slika' => 'image|size:3000',
                  );

$valid = Validator::make($unos, $obavezno);

if($valid->passes()) {
    $biraci = new Biraci();

    $filename = Input::file('slika')->getClientOriginalName();

    $biraci->name               = Input::get('name');
    $biraci->slika              = Input::file('slika')->move('public/uploads', $filename);
    $biraci->path               = $filename;
    $biraci->number             = Input::get('number');;
    $biraci->zajednica          = Input::get('zajednica');
    $biraci->save();    

    return Redirect::to('biraci/dodaj')->with(array('ok' => 'Birac je uspjesno dodat.'));
} else {
    return Redirect::to('biraci/dodaj')->withErrors($valid);
}
}

2 个答案:

答案 0 :(得分:0)

$filename = Input::file('slika')->getClientOriginalName();
// change to
$filename = Input::hasFile('slika') ? Input::file('slika')->getClientOriginalName() : null;

答案 1 :(得分:0)

试试这个:

if($valid->passes()) {

   $biraci = new Biraci();
   if (Input::hasFile('slika')) {
       $filename = Input::file('slika')->getClientOriginalName();
   }

   $biraci->name         = Input::get('name');
   $biraci->slika        = isset($filename) ? Input::file('slika')->move('public/uploads', $filename); : null;
   $biraci->path         = isset($filename) ? $filename : null;
   $biraci->number       = Input::get('number');;
   $biraci->zajednica    = Input::get('zajednica');
   $biraci->save();

}