Как Из Формы Create Сделать Виджет?

У меня проблема. Gii создал модель и создал CRUD.

…index.php?r=model/create

В этом месте всё работает четко, но как только я делаю из формы виджет, то виджет не хочет работать. Или я неправильно делаю виджет.

…this->widget(‘application.components.footerWidget’);

Виджет стоит в футере, то есть, он виден всегда и для всех. Помогите подсказкой.4300

Site.JPG

Как правильно подключить виджет?

То, что код рабочий, у меня сомнений нет. Виджет создает запись на странице …model/create, а на других страницах не отрабатывается.

Судя по скриншоту у Вас одна и та же форма на странице встречается дважды. Если под "неработает" Вы подразумеваете что не работает js-валидация, то думаю дело в одинаковых id у HTML элементов.

Под словом "работает" я подразумеваю добавление записи в базу данных. Id у HTML элементов в самом деле одинаковые. Но! на странице добавления записи работают обе кнопки Create с одинаковыми айди. То есть, и из формы виджета запись можно добавить и из формы страницы. На других страницах запись из формы виджета в базу данных не получается. Форма задумывается, введенный текст изчезает, а записи в базу данных не происходит.

Скорее всего тут причина в контроллере. На странице Create Yii обрабатывает команду "…?r=model/create", затем modelController вызывает акцию Create и обрабатывает POST.

На любых других страницах, например "…?r=site/index" modelController ничем не вызывается, посему мой простенько сработанный виджет не может добавлять запись в базу данных на страницах, которые не вызывают "…?r=model/create".

Но мне нужно на любой странице получить доступ к modelController и вызвать акцию Create. Что мне нужно для этого сделать? Прошу совета.




<?php $form=$this->beginWidget('CActiveForm', array(

    'id'=>'form-id', 

    'action' => Yii::app()->createUrl('controller/action '),

    ...

)); ?>



Спасибо, задача решена! Чтобы форма из виджета добавляла запись, нужно отправлять её данные на страницу views нужного нам контроллера. Запись в БД сделана.

Мой контроллер - modelController и вот такая запись кода не срабатывает:

‘action’ => Yii::app()->createUrl('modelController/action '), ;D

зато срабатывает вот такой код:

‘action’ => Yii::app()->createUrl('Model/action '), :D