如何从Laravel Collection获得价值

时间:2019-03-26 20:00:46

标签: laravel

我有一个名为OfficeHours的模型,该模型具有各种属性,而模型User属于OfficeHours。我正在尝试从集合中获取特定元素,但在刀片中却一片空白。

  public function office_hours() {
        return $this->hasMany(OfficeHours::class);
    } 
  public function user(){
        return $this->belongsTo(User::class);
    }

在Blade中,当我执行以下操作时:

{{$logged_in_user->office_hours->where('dow',2)}}

它可以正常工作并为我提供以下收藏:

{"2":{"id":3,"user_id":4,"dow":2,"fromtime":"07:00:00","totime":"16:00:00","created_at":"2019-01-31 14:48:32","updated_at":null}} 

现在我如何获取该集合的元素?

我尝试过

{{$logged_in_user->office_hours->where('dow',2)->get('fromtime')}}

但是它让我空白

如何访问元素?

1 个答案:

答案 0 :(得分:2)

作为序言,您不应该在view文件中执行这种逻辑,这就是控制器的用途。您可以执行$fromtime = ...;并将其通过return view(...)->with(["fromtime" => $fromtime]);

传递给视图

但是,话虽如此,您应该能够做到

{{ $logged_in_user->office_hours->where("dow", 2)->first()->fromtime }}

请注意,如果->where("dow", 2)未返回Collection,则将出错,因为null上没有->first()方法。