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

时间:2015-08-03 23:02:23

标签: php database laravel laravel-4

我正在使用Laravel 4.2

我有以下型号: 用户预订(预订的user_id引用了ID中的用户模型)

我想查询预订,其中bookings.starts_at>现在

我想要这样的事情:

'Dice' does not have a member named 'generator'

但是在User上应用了条件,因此它会导致异常,因为User没有starts_at。

如何在使用Eloquent类时解决此问题?

由于

1 个答案:

答案 0 :(得分:4)

这在控制器中:

在user_id上加载加载表用户和表预订,其中' bookings.starts_at'>' 2015-07-04'。

User::with(['bookings'=>function($query){
            $query->where('starts_at' , '>', date('Y-m-d'));
          }])->get();

将模型放入Models文件夹中。

用户模型:

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

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

预订模式

start_at格式应为年:月:日期

class Bookings extends Eloquent {

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