参考Laravel教程我开始创建Laravel应用程序,我看到一些导师在Controller上编写了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控制器上编写所有这些查询吗?请告诉我
答案 0 :(得分: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