【问题标题】:How to use get object in controller laravel如何在控制器 laravel 中使用获取对象
【发布时间】:2017-05-02 00:39:35
【问题描述】:

我在控制器中有一个功能可以删除类别及其图像文件。但我无法访问路径属性。我收到此错误未定义属性: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();
}

【问题讨论】:

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


    【解决方案1】:

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

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

    }

    【讨论】:

      【解决方案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;
      

      【讨论】:

      • 如果您不想变得冗长,也可以使用 if 语句执行此操作 if ($category_image) { echo $category_image->path; }
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-03
      • 2021-02-11
      • 2014-09-11
      • 2018-03-19
      • 2016-05-12
      • 2012-09-21
      • 2019-09-05
      相关资源
      最近更新 更多