Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 19.06.2012 18:06:04

Как вы выалидируете данные.

Привет всем.
После использования Yii никак не могу понять как наиболее правильнее проводить валидацию данных перед записью.
Понятное дело, что предпочтительным вариантом будит проводить валидацию в модели, но в Laravel это как-то очень криво выглядит, особенно если в форме присутствуют данные которые не предназначены для записи, но их так же нужно проверить (пример: пароль и повтор пароля на совпадение).

Если не затруднит - внесите ясность smile

Не в сети

#2 20.06.2012 08:49:31

Re: Как вы выалидируете данные.

В Laravel довольно свободная парадигма — например, вы можете использовать контроллеры, но есть также маршруты (обычные функции обратного вызова); вы можете использовать модели Eloquent, но они не связаны со структурой таблицы (нет списка/типов полей) и т.п.

В случае с проверкой ввода та же история: вы можете сделать для себя полную поддержку парадигмы и встроить в класс модели структуру таблицы и их валидацию, а можете сделать по простому — проверять данные в контроллере/маршруте, а модель использовать только для низкоуровневой работы с БД минуя проверки.

Пример такой проверки в маршруте приведён на главной странице этого сайта:

PHP
Route::get('/register', function () {
   return 
View::make('forms.register');
});

Route::post('/register', function () {
   
$rules = array('login' => 'required|alpha_num|max:25');
   
$validation Validator::make(Input::all(), $rules);
   if (
$validation->fails()) {
      return 
Redirect::to('forms.register')->with_errors($validation);
   }
});

Не в сети

#3 20.06.2012 13:30:55

Re: Как вы выалидируете данные.

Да, второй вариант конечно не совсем верный, но что ж.
Просто не хочится городить свои костыли.

З.Ы: Пробовал бандл FormBase_Model, но выглядит это как просто лишние тело движения.
В готовых примерах (tinyissue движок) то же ерунда. Люди, кони.. всё в куче, даже вьюхи в моделях формируются.

Не в сети

Подвал раздела