2014-10-31 51 views
1

參考Laravel教程我開始創建Laravel應用,我看到一些導師寫的MySQL查詢控制器上可以在Laravel控制器上編寫MySQL查詢嗎?

如:

$user = new User(); 
    $user->user_name = $input['user_name']; 
    $user->email = $input['email']; 
    $user->password = $input['password']; 
    $user->phone = $input['phone']; 
    $user->mobile = $input['mobile']; 
    $user->address = $input['address']; 
    $user->save(); 

例如2:

$data['count'] = DB::select("SELECT COUNT(*) AS user_count FROM users WHERE notification='1'"); 

它是確定在Laravel Controller上編寫這些所有查詢?請指教我

+0

通常不會。查詢屬於你的數據庫交互層(存儲,模型,無論...)。附:這個問題在這裏是offtopic和適合https://programmers.stackexchange.com/更好 – JimiDini 2014-10-31 11:44:23

+0

爲什麼你不使用[querybuilder](http://laravel.com/docs/4.2/queries)? – Jerodev 2014-10-31 12:02:41

回答

0

從MVC的角度來看,它違背了標準。

但是,您可以將查詢放入控制器中。當我在過去寫過查詢時,我通常在控制器中保留簡單的查詢,並在模型中保留複雜的查詢。這真的取決於你。

您可以創建一個控制器功能,該功能除了保存到模型上什麼也不做。

// Controller 
class UserController extends BaseController 
{ 

    function afterFormGetsSubmitted(){ 
     $formData = Input::get(); 
     saveToModel($formData); 

     /* 
      Do other stuff 
     */ 
    } 

    function saveToModel($input){ 
     $user = new User(); 
     $user->user_name = $input['user_name']; 
     $user->email = $input['email']; 
     $user->password = $input['password']; 
     $user->phone = $input['phone']; 
     $user->mobile = $input['mobile']; 
     $user->address = $input['address']; 
     $user->save(); 
    } 
} 


這裏的人誰是問關於SQL查詢和控制器的鏈接:
https://softwareengineering.stackexchange.com/questions/143248/strategies-for-avoiding-sql-in-your-controllers-or-how-many-methods-should-i

相關問題