2017-04-07 11 views
0

私は関数から返された結果を別の関数に使用しようとしています。私はそれがnullを返しdd($availableRoomsRet)とき、他の関数から変数にアクセスするLARAVEL

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 
    ]); 
} 

最初の関数は、それが独立して実行する場合、正しい結果を返しますが、:ここ

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; 
    } 
} 

そして、私の第二の機能は次のとおりです。ここに私の最初の関数です。 $availableRoomsにアクセスする方法を知りたい場合は、public function availableRooms()からpublic function returnAddReservation()に? ありがとう!

+0

'ます$ this-> 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()); 
} 
関連する問題