剛開始使用Laravel,但希望確保正確使用它。Laravel 4數據庫操作 - 控制器或模型
我的大部分工作都是基於CMS的讀取/寫入/更新等數據庫。
的是我迄今所做的一個例子是插入到DB:
在我有「AddNewUser函數」的URL形式的看法。
在我的路線我然後執行:
Route::post('addnewuser', array('uses' => '[email protected]'));
我的用戶控制器 'AddNewUser函數' 法(簡體):
public function addNewUser() {
$data = Input::all();
$rules = array(
'username' => 'required|alpha_dash|max:16|unique:users,username',
);
$validator = Validator::make($data, $rules, $messages);
if ($validator->fails())
{
Input::flash();
$errors = $validator->messages();
return Redirect::to('/register')->withErrors($validator)->withInput();
}
$user = new User;
$user->save();
return Redirect::to('/login')->with('successLogin', '1');
}
這是正確的嗎?我曾經在某處讀過所有數據庫交互應該在模型中的地方?
同樣從DB讀取以顯示例如一個foreach時,我直接在視圖以下:
$builds = DB::table('blogs')->orderBy('id', 'desc')->get();
if ($builds) {
foreach ($builds as $build)
{
$safeURLSlug = stringHelpers::safeURLSlug($build->blogtitle);
echo "
// stuff
";
}
} else {
// no stuff
}
我應該直接在視圖做這些排序的查詢和表示數據?或在模型/控制器功能等?
希望檢查即時通訊服務100%正確/做事情的標準方式,在我參與之前。
不,如果您希望代碼可重用,則不應在控制器中完成。試想一下,你有另一個添加用戶的理由,例如。 '/ users/add_batch',那麼你需要爲這個新控制器重寫所有這些東西。或者你希望在命令行(artisan cron job或其他)中執行 - 你需要重新編寫這些東西。相反,更好地創建一個服務,模型上的一個方法(無論適合你),將處理這個任務,並在控制器/ cli中重用它。 – 2014-12-02 16:27:21