0

Yii からデフォルトで作成された連絡先フォームをホームページの下部に表示する方法を理解するのに問題があります。

私は何を使うことができますか?renderPartial() または単に render() と、これを行う正しい方法は何ですか?

<?php $this->renderPartial('contact', array('model'=>$model)); ?>未定義値 $model のエラーを返します。

私は Yii Framework の初心者です。誰か助けてくれますか?

ティア


現在、連絡先ポートレットの作成に問題があります

これは私のコンポーネントContactForm.phpです

<?php
   Yii::import('zii.widgets.CPortlet');
   class ContactForm extends CPortlet
   {
      public $title="Contact Us";

      protected function  renderContent() {

        $form = new ContactForm;
           if(isset ($_POST['ContactForm']))
            {
            $form->attributes=$_POST['ContactForm'];
            if($form->validate())
                $this->controller->refresh ();
        }
        $this->render('contactForm', array('form'=>$form));
        }
   }

そして、これは私にエラーを与える私の contacForm.php ビューです:

   <?php echo CHtml::beginForm(); ?>
   <div class="row">
   <?php echo CHtml::activeLabel($form,'name'); ?>
   <br/>
   <?php echo CHtml::activeTextField($form,'name') ?>
   <?php echo CHtml::error($form,'name'); ?>  
   </div>
   <div class="row">
   <?php echo CHtml::submitButton('Submit'); ?>
   </div>
   <?php echo CHtml::endForm(); ?>

   CException

    ContactForm and its behaviors do not have a method or closure named "getAttributeLabel".

これは、連絡機能がある SiteController の一部です。

    /**
 * Displays the contact page
 */
public function actionContact()
{
    $model=new ContactForm;
    if(isset($_POST['ContactForm']))
    {
        $model->attributes=$_POST['ContactForm'];
        if($model->validate())
        {
            $headers="From: {$model->email}\r\nReply-To: {$model->email}";
            mail(Yii::app()->params['adminEmail'],$model->subject,$model->body,$headers);
            Yii::app()->user->setFlash('contact','Thank you for contacting us. We will respond to you as soon as possible.');
            $this->refresh();
        }
    }
    $this->render('contact',array('model'=>$model));
}

エラーはどこにありますか?

4

1 に答える 1

1

ポートレットのユースケースのように見えます。これは、ユーザー ログイン ポートレットを作成するためのチュートリアルです。お問い合わせフォームの場合は、次のようになります。

http://www.yiiframework.com/doc/blog/1.0/en/portlet.login

于 2012-05-16T12:39:18.920 に答える