如何在控制器层中使用get对象

时间:2016-12-16 09:02:10

标签: php laravel model-view-controller controller laravel-5.2

我在控制器中有一个功能可以删除类别及其图像文件。但我无法访问路径属性。我收到此错误未定义属性:Illuminate \ Database \ Eloquent \ Collection :: $ path。它正在返回路径,但我无法使用它。

public function remove($id) {
    //$category = Category::find($id)->delete();

    $category_image = CategoryImage::where('category_id', '=', $id)->get(['path']);

    echo $category_image->path;


    //return back();
}

2 个答案:

答案 0 :(得分:3)

如果您只需要一个对象,则可以使用http://plnkr.co/edit/UVz5YUkK0JoAy0i64Lo3?p=preview

$category_image = CategoryImage::where('category_id', '=', $id)->first();

if (!is_null($category_image)) { // Always check if object exists.
    echo $category_image->path;
}

当您使用get()时,您获得了first()。在这种情况下,您可以迭代集合并从每个对象获取数据,或者只使用index:

$category_image[0]->path;

答案 1 :(得分:1)

你得到一个集合,你必须以这种方式循环集合:

public function update_cancel_stock($code,$qty)
    {

        $this->db->set('product_quantity', $qty , FALSE);
        $this->db->where('product_id', $order );
        $this->db->update("tbl_inventory6");                

    }

}