Kavin Mehta
Kavin Mehta

Reputation: 810

How to get the value from Laravel Collection

I have a Model called OfficeHours which as various attributes and the model User belongsTo OfficeHours. I am trying to fetch a particular element from a collection but am getting blank in blade.

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

In Blade when i do the following:

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

it works and gets me the following collection:

{"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}} 

now how i do i get the elements of that collection?

i tried

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

but it gives me blank

How do i access the elements?

Upvotes: 0

Views: 25

Answers (1)

Tim Lewis
Tim Lewis

Reputation: 29258

To preface, you shouldn't be doing that kind of logic in the view file, this is what controllers are for. You'd be able to do $fromtime = ...; and pass that to the view via return view(...)->with(["fromtime" => $fromtime]);

But, that being said, you should be able to do

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

Note you're gonna get an error if ->where("dow", 2) doesn't return a Collection, as null doesn't have a ->first() method on it.

Upvotes: 2

Related Questions