lie*_*oes 2 php methods laravel
我从数据库和本地存储中删除图像的方法。
public function destroy($id) {
$image = DB::table('images')->where('id', '=', $id)->first();
//print_r($image);
//return 'end';
File::delete(public_path() . '/images/gallery/thumb-' . $image->path);
File::delete(public_path() . '/images/gallery/' . $image->path);
$image->delete();
return Redirect::back()
->with('form_success', 1)
->with('form_message', 'Image successfully deleted!');
}
Run Code Online (Sandbox Code Playgroud)
如果我尝试返回的值$image我得到:
stdClass Object ( [id] => 49 [site_id] => 1 [page_id] => [location] => gallery [alt] => [path] => 60e52a2755ffe8923d5ac1232f5d9154.jpg )
Run Code Online (Sandbox Code Playgroud)
那么我的代码有什么问题呢?现在我的Laravel版本是4.2.1,但是我尝试将其降级到4.1.17,但是没有任何变化。
问题是一旦您调用first(),就会执行查询并返回结果。您必须在致电delete()之前致电first()。
DB::table('images')->where('id', $id)->delete();
由于您使用的是查询生成器,因此您将返回stdClass已看到的对象(没有删除方法),而不是使用Eloquent时通常会得到的模型。
| 归档时间: |
|
| 查看次数: |
5492 次 |
| 最近记录: |