только что начал использовать Laravel, но хочу убедиться, что использую его правильно.Действия базы данных Laravel 4 - контроллер или модель
Большая часть моей работы - это CMS, основанная на так называемом read/write/update и т. Д. В базе данных.
Пример того, что я сделал до сих пор является для вставки в БД:
На взгляд у меня есть форма с URL из «addNewUser».
В моих маршрутов я тогда делать:
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');
}
Правильно ли это? Я где-то читал, что все взаимодействия с БД должны быть в модели?
Аналогично при чтении из базы данных для отображения Еогеасп, например, я следующий непосредственно в окне просмотра:
$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', тогда вам нужно переписать все это для этого нового контроллера. Или вы хотите сделать это в командной строке (задание ремесленника или что-то еще) - вам нужно снова переписать этот материал. Вместо этого лучше создайте службу, метод на модели (что вам подходит), которая будет обрабатывать эту самую задачу и повторно использовать ее в вашем контроллере (ов)/cli. –