воскресенье, 21 марта 2010 г.

Грабля: дублирование записей при сохранении формы

Если при сохранении формы дублируются записи, то срочно проверяем: а нет ли embedded-формы, у которой нет связующего поля?

Добавляем в embedded-форму связующее поле (user_id, product_id,...) и грабля остается позади.

UPD А вот и неправда. Наоборот, надо исключить связующие поля, да еще и id впридачу. Например, вот правильный код встраивания Profile-формы:
public function configure()
 {
   parent::configure();
  
   $profileForm = new ProfileForm($this->object->Profile);
   unset($profileForm['id'], $profileForm['sf_guard_user_id']);
   $this->embedForm('Profile', $profileForm);
 

Грабля: setAuth в функциональном тесте

Начинаю давно задуманный цикл постов: Грабли. Комментарии, думаю, излишни.

Как может показаться с первого взгляда, метод $browser->setAuth($username,$password) авторизует пользователя sfUser с заданными логином и паролем. Это не так, в чем мы убеждаемся, внимательнее прочитав описание метода:

Sets username and password for simulating http authentication.

То есть речь идет о HTTP-авторизации. Для того, чтобы достичь поставленной цели - авторизовать юзера - нужно (ну надо же!) заполнить форму логина и отправить ее.

пятница, 19 марта 2010 г.

Валидатор для проверки вхождения значения одного поля в значение другого

Простите, мне не удалось упростить заголовок поста. Итак, мне потребовалось проверить в форме, является ли значение поля А элементом массива, переданного в поле Б. После недолгих споров, я принял совет Павла наследовать валидатор-схему. Действительно, других способов получить доступ к двум и более полям формы, кажется, нет. Для одного поля подошел бы валидатор sfValidatorShemaFilter, но в нашем случае это решение не подходит - поля два.

суббота, 6 марта 2010 г.

Что новенького в Symfony 2?

Просмотрим мельком ту, пока еще небогатую, документацию к новой версии Symfony, и отметим, что же нового готовит нам Sensio Labs.

Философия Symfony 2

Это перевод поста в блоге Symfony.

вторник, 2 марта 2010 г.

Как заменить в URL search[name] на search_name?

Когда отправляется форма поиска (разумеется, методом GET), то в адресной строке появляется длинная строчка, где параметры представлены в виде PHP-массива: search[name]=a&search[age]=27&... На мой взгляд это не очень красиво, и хотелось бы заменить это на s_name=a&s_age=27&... Как это сделать?

Ставим symfony под Денвером

Ставим симфонию под Денвером для Windows XP:

1. Запускаем денвер
2. Создаем папку z:\home\my_project\www\