Laravel 4 rest api非隐式操作路由和左连接

Laravel 4 rest api非隐式操作路由和左连接,rest,laravel,laravel-4,left-join,eloquent,Rest,Laravel,Laravel 4,Left Join,Eloquent,我是拉雷维尔的新手,但我确实喜欢拉雷维尔4号。我被困在两点上- 第一个是-我在控制器中有一个非crud操作方法,它必须与两个表进行左连接并返回结果。有两张桌子,员工和部门。我试图让所有分配和未分配的员工在他们之间建立关联。此操作方法位于“EmployeeController”中。它被命名为“allAssignedEmployees”。我尝试了以下路由,但似乎不起作用: Route::resource('employees/assignedEmployees/{deptId}','Employe

我是拉雷维尔的新手,但我确实喜欢拉雷维尔4号。我被困在两点上-

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

    Route::resource('employees/assignedEmployees/{deptId}','EmployeesController@assignedEmployees');

  • 第二,我对我的左路不太确定。下面是我用谷歌搜索的结果

           $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\u id=employee.id和employee.dept\u id=2

    我脑子里还没有回答的其他相关问题是——如何登录Laravel4?特别是SQL查询或常规日志语句。是否有内置的日志记录支持

    我知道有很多问题,但我相信这些答案将有助于我的学习过程,因此感谢您的时间


首先,我没有粗鲁,但你至少应该先学习文档

现在来回答你的问题:

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

这个单一路由声明创建多个路由来处理employees资源上的各种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
所以,若您已经创建了资源控制器,那个么像employees/{id}这样的get路由将由controllers show方法处理。 但是,如果您想要处理特定的方法,那么您必须像这样路由它
Route::get('employees/assignedEmployees/{deptId}','EmployeesController@assignedEmployees'');


关于日志读取

感谢您的回复:)我确实阅读了文档..非crud指的是涉及特殊类型查询的特定操作方法,如上面的左连接等..很抱歉,我应该更清楚地了解非crud的含义(可能是文档中的非隐式操作)你的问题解决了吗?如果你的问题没有解决的话?嗨,Rahul,路由和日志问题已经解决了,但是左连接问题仍然存在:(上面的查询没有返回任何东西…我无法记录查询,也无法进一步调试…有点卡在那里了:(感谢你伸出援助之手…
DB::table('employee'))->leftJoin('department',function($join){$join->on('department.employee_id','=','employee.id')->on('department.id','=',$deptId);})->get();
试试这个