2013-07-07 58 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,路由和日誌記錄問題已解決,但左連接問題仍然存在:(上述查詢不返回任何內容....我無法記錄查詢,也無法進一步調試...有點卡在那裏: (多謝你借給了援助之手... –