2017-04-07 200 views
0

我試圖將函數的返回結果用於另一個函數。這是我的第一個功能:從其他函數訪問變量LARAVEL

public function availableRooms(){ 
    if(isset($_POST['selectedDate'])){ 
     $checkInDateReceived = str_replace('/', '-', $_POST['selectedDate']); 
     $checkInDate = date('Y-m-d', strtotime($checkInDateReceived)); 
     $availableRooms = DB::table('rooms') 
      ->leftJoin('reservations', function ($secondJoin) use($checkInDate) { 
       $secondJoin->where('reservations.checkout_date', '<', $checkInDate); 
      }) 
      ->leftJoin('reservation_room_rel', function ($firstJoin) { 
       $firstJoin 
        ->on('reservation_room_rel.room_id', '=', 'rooms.id') 
        ->on('reservation_room_rel.reservation_id', '=', 'reservations.id'); 
      }) 
      ->where([ 
       ['rooms.status', '=', 1] 
      ]) 
      ->whereNull('reservation_room_rel.room_id') 
      ->get(); 
     return $availableRooms; 
    } 
} 

這裏是我的第二個功能:

public function returnAddReservation(){ 
    $availableRoomsRet = $this->availableRooms(); 
    $mealSupplement = new Meal; 
    $accommodationSupplement = new AccommodationSupplement; 

    $accommodationSupplements = $accommodationSupplement::where('status', 1) 
     ->orderBy('name', 'asc') 
     ->get(); 
    $mealSupplements = $mealSupplement::where('status', 1) 
     ->orderBy('name', 'asc') 
     ->get(); 
    return view('addReservation', [ 
     'availableRooms' => $availableRoomsRet, 
     'accommodationSupplements' => $accommodationSupplements, 
     'mealSupplements' => $mealSupplements 
    ]); 
} 

首先函數返回正確的結果,如果它獨立運行,但是,當我dd($availableRoomsRet)返回null。 任何想法如何正確訪問$availableRoomspublic function availableRooms()public function returnAddReservation()? 謝謝!

+0

什麼是'$這個 - > availableRooms()'的'var_dump'結果試試嗎?它是NULL嗎? – Chester

+0

是的,它爲空 –

+0

然後可能你的查詢失敗,請確保你有一個查詢結果。 – Chester

回答

0

只要你在同一個班級,你應該得到它的價值,它與Laravel的純粹的PHP沒有任何關係。

,你可以這樣做

public function availableRooms(){ 
    $availableRooms = 15; 
    return $availableRooms; 
} 

public function returnAddReservation(){ 
    var_dump('inside class'. $this->availableRooms()); 
    $availableRoomsRet = $this->availableRooms(); 
    return $availableRoomsRet; 
} 

public function thirdfunction(){ 
    var_dump('inside third function' . $this->returnAddReservation()); 
}