2013-07-07 39 views
0

我非常新的Laravel但我当然喜欢Laravel 4.我停留在两点 -Laravel 4 REST API非隐含动作路由和左的连接

  • 第一个就是 - 我有一个控制器中的非crud动作方法必须与两个表进行左连接并返回结果。有两个表,员工和部门。我试图让所有分配和非分配的员工在他们之间建立关联。此操作方法位于“EmployeeController”内部。它被命名为“allAssignedEmployees”。我尝试了以下路由,但似乎它不工作:

    Route::resource('employees/assignedEmployees/{deptId}', '[email protected]');

  • 其次,我也有点不太确定我的左连接。以下是我做了什么谷歌搜索

     $unassignedEmployees = DB::table('employee') 
         ->join('department', function($join) 
         { 
          $join->on('department.employee_id', '=', 'employee.id'); 
         }) 
         ->where('department.id', '=', $deptId) 
         ->get(); 
    

    出来显然我想要的东西在SQL是 - select * from employee emp left join department dept on dept.employee_id = employee.id and employee.dept_id = 2

    的其他相关问题没有回答我脑子里想的是 - 如何登录Laravel 4?特别是SQL查询或一般日志语句。是否有内置的日志记录支持。

    我知道它很多问题,但我相信答案会帮助我的学习过程,因此感谢您的时间。

回答

0

首先,我并不粗鲁,但至少应该学习文档。

现在来到你的问题:

关于资源控制器: Route::resource('employees', 'EmployeesController');

这一条路线声明创建多个路由处理各种对员工资源的RESTful行动。同样,生成的控制器已经为每个这些操作都有存根方法,通过注释告诉你它们处理了哪些URI和动词。已处理通过资源控制器

Verb  Path     Action  Route Name 

GET   /employees   index   employees.index 
GET   /employees/create  create  employees.create 
POST  /employees   store   employees.store 
GET   /employees/{id}  show   employees.show 
GET   /employees/{id}/edit edit   employees.edit 
PUT/PATCH /employees/{id}  update  employees.update 
DELETE  /employees/{id}  destroy  employees.destroy 

所以,如果你已经创建了资源控制器然后得到这样的员工/ {ID}路线

行动将通过控制器来处理显示方法。 但是如果你想具体的方法来处理,那么你必须将其路由这样 Route::get('employees/assignedEmployees/{deptId}',''[email protected]'');

和关于记录读取here

+0

感谢您的答复:)我读过的documentation..by非CRUD我的意思特定的操作方法,涉及特殊类型的查询,如上例中的左连接等......我很抱歉,我应该更清楚我的意思是非crud(可能是非隐式行为,如文档中的行为) –

+0

是你的问题解决了吗?如果不是你的问题到底是什么? –

+0

嗨Rahul,路由和日志记录问题已解决,但左连接问题仍然存在:(上述查询不返回任何内容....我无法记录查询,也无法进一步调试...有点卡在那里: (多谢你借给了援助之手... –