相关的代码是在:https://gist.github.com/morganhein/9254678查询ORM与WHERE子句 - 锋/ Laravel 4
我有嵌套资源控制器,其中查询数据库中的类似结构的表。
如果我访问www.example.com/v1/jobs/1/departments,我想查询与作业1相关的所有部门。但是我无法弄清楚如何使用ORM来实现这一点。
帮助?
相关的代码是在:https://gist.github.com/morganhein/9254678查询ORM与WHERE子句 - 锋/ Laravel 4
我有嵌套资源控制器,其中查询数据库中的类似结构的表。
如果我访问www.example.com/v1/jobs/1/departments,我想查询与作业1相关的所有部门。但是我无法弄清楚如何使用ORM来实现这一点。
帮助?
我没有测试,但我建议你去尝试这样的:
Route::resource('/v1/jobs/{id}/departments', 'DepartmentController');
Route::resource('/v1/jobs', 'JobController');
之后,你DepartmentController方法将接受一个参数,它是作业ID,你的情况。如果您使用id
检索任何特定模型,则使用find()
方法更容易。当您找到该模型时,您可以访问相关模型。
class DepartmentsController extends BaseController {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index($jobId)
{
Clockwork::startEvent('List_Default_Departments', 'Starting.');
$positions = Auth::user()->jobs()->find($jobId)->departments;
Clockwork::endEvent('List_Default_Departments', 'Done.');
return Response::json($positions->toArray());
}
}
注:有$job->departments()
之间的不同(返回生成器对象来创建更复杂的查询)和$job->departments
(直接返回Collection对象)。
此外,如果你想获得的所有相关部门的工作列表,你可以随时拨打:
$jobs = Auth::user()->jobs()->with('departments')->get();
你'jobs'表没有用'departments'声明的赫志。你必须在你的'Jobs'模型上做到这一点。 –
我很困惑,我jobs.php(模型)就指出: \t公共职能部门() \t { \t \t回$这个 - >的hasMany( '部'); \t} 是不是我所需要的? – Morgan
它应该是。不这样工作?如果没有,请发布您的模型代码。 –