Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Laravel中使用一对多关系的条件_Php_Database_Laravel_Laravel 4 - Fatal编程技术网

Php 如何在Laravel中使用一对多关系的条件

Php 如何在Laravel中使用一对多关系的条件,php,database,laravel,laravel-4,Php,Database,Laravel,Laravel 4,我使用的是Laravel4.2 我有以下型号: 用户和预订具有引用id中的用户模型的用户id 我想进行查询以检索Bookings.Start\u at>现在开始的预订 我想要这样的东西: User::with('bookings')->where('starts_at' , '>' time())->get(); 但当条件应用于用户时,它会导致一个异常,因为用户并没有起始点 如何在仍然使用雄辩类的情况下解决这个问题 感谢您在控制器中使用此功能: 加载在用户id上联接的表用户和

我使用的是Laravel4.2

我有以下型号: 用户和预订具有引用id中的用户模型的用户id

我想进行查询以检索Bookings.Start\u at>现在开始的预订

我想要这样的东西:

User::with('bookings')->where('starts_at' , '>' time())->get();
但当条件应用于用户时,它会导致一个异常,因为用户并没有起始点

如何在仍然使用雄辩类的情况下解决这个问题

感谢您在控制器中使用此功能:

加载在用户id上联接的表用户和表预订,其中“bookings.started”>“2015-07-04”

User::with(['bookings'=>function($query){
            $query->where('starts_at' , '>', date('Y-m-d'));
          }])->get();
将模型放入“模型”文件夹

用户模型:

class User extends Eloquent {
     protected $table = 'users';
     protected $fillable = array('name','last_name');

  public function bookings() {
      return $this->hasMany('Bookings', 'user_id');
  }
}
预订模式

起始日期格式应为年:月:日

class Bookings extends Eloquent {

  protected $table = 'bookings';
  protected $fillable = array('id','booking','user_id','start_at');
}

非常感谢你。这回答了我的问题。