0

我正在尝试通过预订表和特定位置查找可用房间。

$not_available = Booking::where('dateFrom', '>=', $arrival)
->where('dateTo', '<=',  $depart)
->get(array('gardenId', 'dateFrom', 'dateTo'));
$gardens = Garden::where('province',$location)->get();

    foreach ($not_available as $not) 
    {
        $gardenId = $not->gardenId;
        $gardens = Garden::where('id','<>',$gardenId)->where('province',$location)->get();
    }

我总是出现错误的结果。谁能帮帮我?

4

1 回答 1

0

这应该非常接近。它是急切的加载,会给你更好的性能。

// If you don't have your relationships setup in your model yet.  
class Booking extends Eloquent {

    public function gardens()
    {
        return $this->hasMany('Garden', 'gardenId');
    }

}

class Garden extends Eloquent {

    public $primaryKey = 'gardenId';

    public function booking()
    {
        return $this->belongsTo('Booking');
    }
}

// Eager load
$bookings = Booking::where('dateFrom', '>=', $arrival)
    ->where('dateTo', '<=', $depart)
    ->with(array('gardens' => function($query)
    {
        $query->where('province', '=', $location)
    }))
    ->get();

foreach($bookings as $booking)
{
    foreach($booking->gardens as $garden)
    {
        echo $booking->name;
        echo $garden->name;
        echo $garden->location;
    }
}
于 2013-11-08T14:08:15.827 回答