Laravel - Undefined offset 0 - collection.php

I am programming a web application. The backend is a RESTFul application based in Laravel 4.

I am having problems with a specific controller.

BedsController.php

class BedsController extends \BaseController { /** * Display a listing of the resource. * GET /beds * * @return Response */ public function index() { // $user = JWTAuth::parseToken()->authenticate(); $data = Input::get('room'); $retorno = array(); $hoy = date('Ym-d'); if( $data ){ $d = intval( $data ); $beds = Bed::where('room', '=', $d )->get( array('size', 'room', 'id', 'name') ); foreach( $beds as $b ){ $b->stay = Stay::where('bed', '=', $b->id ) ->where('indate', '<=', $hoy ) ->where('outdate', '>=', $hoy ) ->get( array( 'id', 'room', 'bed', 'guest', 'booking', 'indate', 'outdate' ) ); dd( $b->stay ); if( isset( $b->stay->guest ) ){ $b->stay->huesped = Guest::find( $b->stay->guest ); }else{} if( isset( $b->stay->booking ) ){ $b->stay->huesped = Booking::find( $b->stay->booking ); } //dd( $b->stay ); array_push( $retorno, $b ); } //$room = Room::find( $d ); //return $room->camas()->get( 'size', 'room', 'id'); //$beds = Bed::where('room', $data )->get(); }else{ $beds = Bed::where('hotel', '=', $user->hostel )->get( array('size', 'room', 'id', 'name') ); foreach( $beds as $b ){ $be = $b['attributes']; $st = array(); $stay = Stay::where('bed', '=', $b->id ) ->where('indate', '<=', $hoy ) ->where('outdate', '>=', $hoy ) ->get( array( 'id', 'room', 'bed', 'guest', 'booking', 'indate', 'outdate' ) ); //return $stay[0]; $st = $stay[0]; //dd( $stay[0] ); if( isset( $stay[0] ) ){ if( $stay[0]['attributes']['guest'] > 0 ){ $be['huesped'] = Guest::find( $b->stay->guest ); }else{} if( $stay[0]['attributes']['booking'] ){ $be['reserva'] = Booking::find( $b->stay->booking ); } $be['stay'] = $st; } array_push( $retorno, $be); $be = array(); } } return $retorno; } 

So, when I call mysiteapp.local / beds, I have to return a composite array with the data about the bed and, if there is a reservation, or if this bed is currently occupied, information about the stay and information about the guests.

But all I get is sayin 'compilation error message:

 error:{type: "ErrorException", message: "Undefined offset: 0",…} file:"/home/pablo/htdocs/pbertran/angularh/api/vendor/laravel/framework/src/Illuminate/Support/Collection.php" line:788 message:"Undefined offset: 0" type:"ErrorException" 

There were problems with the search, but could not find a solution. Any ideas?

Thanks in advance!

+5
source share
1 answer

You make the assumption that this index is present, which may not always be the case. Your logic should be more fussy:

 $st = isset($stay[0]) ? $stay[0] : false; if ($st){ //now you can use it safely. } 
+6
source

All Articles