【发布时间】:2014-05-30 20:42:43
【问题描述】:
我是 Laravel 新手,感谢您的帮助
我有两个 Eloquent 模型,Job 和 User
工作模式如下:
<?php
class Job extends Eloquent {
protected $table = 'tbl_jobs';
public function User() {
return $this->belongsTo('User','uid');
}
public function scopeWork($query) {
return $query->where('worktime', '=', 0);
}
}
用户模型是:
<?php
use Illuminate\Auth\UserInterface;
class User extends Eloquent implements UserInterface {
protected $table = 'tbl_users';
public function scopeActive($query) {
return $query->where('status', '=', 'Active');
}
}
问题是如何在一个语句中调用具有范围(活动和工作)的两个模型? 或类似的东西
Job::Work()->with('user')->get();
是不是belongsTo不等于inner join??
【问题讨论】:
-
不,with() 没有加入任何东西。所以问题是:您是要获取模型交集(Job scope AND User scope)还是在范围内获取 Job,然后添加与范围匹配的相关用户(如果不匹配则不添加)-后者可能会导致 Job没有用户,而先不能
-
谢谢你,deczo,我想获得工作范围和活动范围的模型交集,这意味着我想获得 tbl_jobs.worktime = 0 和 tbl_users.status = 'active',我该怎么做做什么?