2017-08-11 127 views
1

我想上传包含一些帖子的照片。Laravel 5 - 使用干预图像包进行图像上传和调整大小

这是我的控制器

public function store(WisataRequest $request) 
{ 
    $input = $request->all(); 

    if ($request->hasFile('gambar')) { 
    $gambar = $request->file('gambar'); 
    $filename = time() . '.' . $gambar->getClientOriginalExtension(); 

    if ($request->file('gambar')->isValid()) { 
     Image::make($gambar)->resize(300, 300)->save(public_path('/upload/gambar/'.$filename)); 
     $input->gambar = $filename; 
     $input->save(); 
    } 
    } 

    $wisata = Wisata::create($input); 
    Session::flash('flash_message', 'Berhasil Terkirim'); 
    return redirect('admin_wisata'); 
} 

但是当它运行时,我发现了错误 尝试分配非对象的属性

+0

而这个错误是在哪一行? – ceejayoz

+0

WisataRequest是什么?我认为它只应该是'Request'。还在顶部声明:'使用Illuminate \ Http \ Request;' –

+1

@YaShChaudhary这是一个建立在Request之上的用户定义的请求。那完全没问题。 – Wreigh

回答

0

变化$input访问。图片

$input->gambar = $filename; 
$input->save(); 

$input['gambar']= $filename; 
0

$input变量不是一个对象,它是一个数组。您可以尝试做$input['gambar']

0

你应该这样尝试:

你可以把

$输入[ 'gambar'] = $文件名;

而不是

$ input-> gambar = $ filename; $ input-> save();

OR

public function store(WisataRequest $request) 
{ 

    $wista = new Wista; 
    $wist->name = $request->name; 
    ----- 
    $wista->save(); 

    if ($request->hasFile('gambar')) { 
    $gambar = $request->file('gambar'); 
    $filename = time() . '.' . $gambar->getClientOriginalExtension(); 

    if ($request->file('gambar')->isValid()) { 
     Image::make($gambar)->resize(300, 300)->save(public_path('/upload/gambar/'.$filename)); 
     $wista->gambar = $filename; 
     $wista->save(); 
    } 


    } 


    Session::flash('flash_message', 'Berhasil Terkirim'); 
    return redirect('admin_wisata'); 
} 

希望这对你的工作!