2017-04-07 144 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()); 
}