Attribute Labels Not Working For Signup Form

Hi all! I’m having some trouble getting my attribute labels to display on my signup form. The form observes the requirements from rules(), but pulls nothing from attributeLabels()

Model:




<?php

	class SignUp extends CFormModel

	{

		public $email;

		public $password;

		public $password2;

		public $address;

		public $city;

		public $state;

		public $zipcode;

		public $phone;

		

		public function rules()

		{

			// NOTE: you should only define rules for those attributes that

			// will receive user inputs.

			return array(

				array('email, address, city, state, zipcode, phone', 'required'),

				array('password2, password', 'required', 'on'=>'confirm'),

				array('password', 'compare', 'compareAttribute'=>'password2'),

				array('email', 'email'),

				array('zipcode, phone', 'numerical', 'integerOnly'=>true),

				array('phone', 'length', 'max'=>10, 'min'=>10),

				array('email', 'length', 'max'=>65),

				array('password', 'length', 'min'=>5, 'max'=>100),

				array('address', 'length', 'max'=>95),

				array('state', 'length', 'max'=>2, 'min'=>2),

				// The following rule is used by search().

				// Please remove those attributes that should not be searched.

				array('email, password, firstName, lastName, address, city, state, zipcode', 'safe', 'on'=>'search'),

			);

		}


		public function attributeLabels()

		{

			return array(

				array('email' => 'E-mail'),

				array('password' => 'Password'),

				array('password2' => 'Repeat Password'),

				array('address' => 'Address'),

				array('city' => 'City'),

				array('state' => 'State'),

				array('zipcode' => 'Zip Code'),

				array('phone' => 'Phone'),

				

			);

		}

	}


?>

Form View:




<div class="form">


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

	'id'=>'signup-form',

	'enableAjaxValidation'=>false,

)); ?>


	<p class="note">Fields with <span class="required">*</span> are required.</p>


	<?php echo $form->errorSummary($model); ?>


	<div class="row">

		<?php echo $form->labelEx($model,'email'); ?>

		<?php echo $form->textField($model,'email',array('size'=>60,'maxlength'=>65)); ?>

		<?php echo $form->error($model,'email'); ?>

	</div>

	

	<div class="row">

		<?php echo $form->labelEx($model,'password'); ?>

		<?php echo $form->passwordField($model,'password',array('size'=>15,'maxlength'=>15)); ?>

		<?php echo $form->error($model,'password'); ?>

	</div>

	

	<div class="row">

		<?php echo $form->labelEx($model, 'password2'); ?>

		<?php echo $form->passwordField($model,'password2',array('size'=>15,'maxlength'=>15)); ?>

		<?php echo $form->error($model,'password2'); ?>

	</div>

	

	<div class="row">

		<?php echo $form->labelEx($model, 'address'); ?>

		<?php echo $form->textField($model,'address',array('size'=>60,'maxlength'=>65)); ?>

		<?php echo $form->error($model,'address'); ?>

	</div>

	

	<div class="row">

		<?php echo $form->labelEx($model, 'city'); ?>

		<?php echo $form->textField($model,'city',array('size'=>25,'maxlength'=>25)); ?>

		<?php echo $form->error($model,'city'); ?>

	</div>

	

	<div class="row">

		<?php echo $form->labelEx($model, 'state'); ?>

		<?php echo $form->textField($model,'state',array('size'=>2,'maxlength'=>2)); ?>

		<?php echo $form->error($model,'state'); ?>

	</div>	


	<div class="row">

		<?php echo $form->labelEx($model, 'zipcode'); ?>

		<?php echo $form->textField($model,'zipcode',array('size'=>5,'maxlength'=>5)); ?>

		<?php echo $form->error($model,'zipcode'); ?>

	</div>

	

	<div class="row">

		<?php echo $form->labelEx($model, 'phone'); ?>

		<?php echo $form->textField($model,'phone',array('size'=>10,'maxlength'=>10)); ?>

		<?php echo $form->error($model,'phone'); ?>

	</div>

		

	<div class="row buttons">

		<?php echo CHtml::submitButton('Sign Up'); ?>

	</div>


<?php $this->endWidget(); ?>



attributelabels should be in return array(‘attribute’=>‘value’); format. not array( array(‘attribute’=>‘value’));

This should work:




public function attributeLabels()

                {

                        return array(

                                'email' => 'E-mail',

                                'password' => 'Password',

                                'password2' => 'Repeat Password',

                                'address' => 'Address',

                                'city' => 'City',

                                'state' => 'State',

                                'zipcode' => 'Zip Code',

                                'phone' => 'Phone',

                                

                        );

                }




I can’t believe I didn’t notice that before… Must have gotten my rules() and attributeLabels() formatting mixed up. Works now. Thanks!