2017-01-30 6 views
1

Я создал форму с использованием Gii и скопировал форму и все поля на другую страницу. Чтобы быть конкретным, вставьте эту форму на домашнюю страницу.Yii - Передача формы другому контроллеру

$form=$this->beginWidget('CActiveForm', array(
          'id'=>'get-in-touch-form', 

Теперь, когда я отправить форму он ничего не делает, потому что называя begingWidget с $ этот объект

$this->beginWidget(

когда я echo get_class($this) он показывает мне SiteController, который имеет смысл, так как я вложенности код на главной странице. В этом случае я хочу вызвать метод beginWidget внутри GetInTouchController Как я могу вызвать вызов этого метода? Я попытался

$getInTouch = new GetInTouchController(); 
$form=$getInTouch->beginWidget('CActiveForm', array(

и

$form=GetInTouchController::beginWidget('CActiveForm', array(

, но в обоих случаях, это показывает ошибку

include(GetInTouchController.php): failed to open stream 

Как можно это сделать?

ответ

2

Если вы хотите вызвать другое действие контроллера в yii1 вы должны задать действие

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'form-id', 
    'action' => Yii::app()->createUrl('GetInTouch/yourAction '), //<- your form action here 

)); ?> 
+0

Yep, который работает. Благодаря! – Hum