Yii Framework Forum: Как Правильно Работать С Конструктором Форм Cform - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Как Правильно Работать С Конструктором Форм Cform Rate Topic: -----

#1 User is offline   Georgy90 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 03-March 12

Posted 13 November 2012 - 04:31 PM

Здравствуйте!

Возникла следующая проблема: по инструкции http://www.yiiframew...ru/form.builder пытаюсь создать форму при помощи конструктора CForm. Создал действие в контроллере:

public function actionCall()
{
$model= new CallForm;
$form = new CForm('application.views.client.callForm', $model);
$form->validate();
$this->render('call', array('form'=>$form,));
}

Создал представление call.php:

<div class="form">
<?php echo $form; ?>
</div>

И callForm.php:

return array(
'title'=>'Заполните форму',

'elements'=>array(
'family'=>array(
'type'=>'text',
'maxlength'=>32,
),
),

'buttons'=>array(
'login'=>array(
'type'=>'submit',
'label'=>'Записать',
),
),
);


Но на странице отобразились теги fieldset, объединяющий legend с заголовком "Заполните форму" и кнопку "Записать". Поля ввода из массива 'elements' не выводятся. В чем может быть причина, куда копать?

Зарание спасибо.

P.S.
Только начинаю изучать Yii.
0

#2 User is offline   Charger 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 317
  • Joined: 03-September 11

Posted 14 November 2012 - 02:25 AM

Я бы не советовал использовать FormBuilder, какое-то у меня предубеждение к нему, может я ошибаюсь, но нестандартные вставки в формы, с его помощью не сделать.
Взамен рекомендую сгенерировать по таблице модель в Gii, и по этой модели снерировать CRUD controller там же. И изучить полученный код, что бы понять принцип. Вот там на гибкость никаких ограничений нет.
0

#3 User is offline   Georgy90 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 03-March 12

Posted 14 November 2012 - 11:09 AM

Я хотел его использовать что бы быстрей создавать формы, не рисуя каждое поле через CHtml. Когда 1 форма и в ней до 5 полей, это много времени не отнимает, но когда необходимо создать штук 6 различных форм, при этом в каждой порядка 15-20 полей, то на это уже приличное количество времени уйдет. Спасибо, попробую через Gii создать модель и CRUD для таблицы из БД и погляжу как они устроены, а то может будет проще рисовать через CHtml, но зачем тогда нужен конструктор форм CForm.

И все же почему он не выводит поля ввода, которые переданы в массиве elements ?
0

#4 User is offline   Charger 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 317
  • Joined: 03-September 11

Posted 14 November 2012 - 12:13 PM

Почему не выводит, я не могу ответить, потому что как-то не пришлось с ним работать. Может кто то другой сможет нас просветить.
А написание различных форм с помощью CHtml и CActiveForm, это весьма и весьма просто, к тому же для этого есть хороший генератор, после него есть что поправить, но основную рутину он устраняет.
0

#5 User is offline   Georgy90 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 03-March 12

Posted 14 November 2012 - 12:47 PM

View PostCharger, on 14 November 2012 - 12:13 PM, said:

А написание различных форм с помощью CHtml и CActiveForm, это весьма и весьма просто, к тому же для этого есть хороший генератор, после него есть что поправить, но основную рутину он устраняет.


Вы имеете ввиду генератор встроенный в Gii: Form Generator?
0

#6 User is offline   Charger 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 317
  • Joined: 03-September 11

Posted 14 November 2012 - 02:15 PM

Не, вообще-то встроенный в Gii CRUD-generator, просто потому что пользуюсь им чаще, когда нужен редактор для какой-то таблицы. Он требует для работы ActiveRecord модель, и генерирует не только представление, но и контроллер.
Form generator в общем-то весьма похож, но генерирует только представление, к тому же может работать на основании объекта класса CFormModel, если это о чем-то вам говорит.

Может будет проще, если вы опишите свою задачу? Что за форма, какая модель?
0

#7 User is offline   Georgy90 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 03-March 12

Posted 18 November 2012 - 07:13 AM

Форма и модель описаны в первом посте, не стал на нем зацикливаться (я про CForm), принаровился к генераторам из Gii. Генерирую каркас, после этого немного редактирую модель и представление. Всеже получается быстрее чем вручную бы делал, да и изменения вносить не составляет сложности.

Спасибо что откликнулись.
0

#8 User is offline   Woice 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 1
  • Joined: 05-April 13

Posted 05 April 2013 - 07:15 AM

View PostGeorgy90, on 13 November 2012 - 04:31 PM, said:


$model= new CallForm;
$form = new CForm('application.views.client.callForm', $model);



Внутри класса CallForm вам надо описать ваши параметры, согласно оформлению модели. Тобишь нужно их объявить и описать в методе attributesLabels().
public function attributeLabels()
{
return array(
'username'=>'Имя',
'password'=>'пароль',
...
все параметры из массива application.views.client.callForm
);
}
Иначе задумайтесь - зачем вы используете класс, который не используете? Не просто так он там =)
http://www.yiiframew...ru/form.builder
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users