2016-12-16 2 views
2

У меня есть функция в контроллере для удаления категории и ее файла изображения. Но я не могу получить доступ к свойству path. Я получаю эту ошибку Undefined property: Illuminate \ Database \ Eloquent \ Collection :: $ path. Это путь возврата, но я не могу его использовать.Как использовать объект get в контроллере laravel

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

Вы можете использовать first(), если вам нужно получить только один объект:

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

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

Когда вы используете get(), вы получаете collection. В этом случае вы можете перемещаться по коллекции и получить данные от каждого объекта, или просто использовать индекс:

$category_image[0]->path; 
+0

Вы также могли бы сделать это с, если заявление, если вы не хотите быть многословным если ($ category_image) { echo $ category_image-> path; } – Spholt

1

Вы получаете коллекцию, вы должны цикла через в коллекции так:

foreach ($category_image as $image) { 
echo $image->path; 

}

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