2013-11-25 3 views
0

Я изучаю YII, и у меня возникла проблема. Я пытаюсь сделать форму, но я не могу получить значения из формы в своем контроллере. Я не понимаю, что я делаю неправильно. Это мойНевозможно получить значение формы в контроллере yii

(модель) Logindetails.php

class Logindetails extends CActiveRecord {    
public $pass; 
    //rest of the coding 

public function rules() { 
    return array(
     array('password', 'length', 'max'=>20), 
    ); 
} 

(вид) _form.php

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'logindetails-form', 
)); ?> 

<div class="row"> 
    <?php echo $form->labelEx($model,'pass'); ?> 
    <?php echo $form->textField($model,'pass',array('size'=>20,'maxlength'=>20)); ?> 
    <?php echo $form->error($model,'pass'); ?> 
</div> 
<div class="row buttons"> 
    <?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?> 
</div> 
<?php $this->endWidget(); ?> 

контроллер

public function actionCreate(){ 
    $model=new Logindetails; 
    // Uncomment the following line if AJAX validation is needed 
    // $this->performAjaxValidation($model); 

    if(isset($_POST['Logindetails'])) { 
     $model->attributes=$_POST['Logindetails']; 
     if(isset($model->pass)) { 
      echo 'its present'; 
     } else { 
      echo 'its absent'; 
     } 

    } 

    $this->render('create',array(
     'model'=>$model, 
    )); 
} 

Он продолжает показывать мне его нет. Почему у меня такая проблема?

+0

вместо echo try die ($ _ POST ['Logindetails'] ['pass']) – Kalpit

ответ

1

Из приведенного выше кода вы просто меняете свое состояние в контроллере.

if(isset($model->pass)) 

в

if(isset($_POST['Logindetails']['pass'])) 

OR 

if($model->pass != "")) 

Вы можете отлаживать код для проверки либо значение текстового поля подходит или нет.

public function actionCreate(){ 
    $model=new Logindetails; 
    // Uncomment the following line if AJAX validation is needed 
    // $this->performAjaxValidation($model); 

    if(isset($_POST['Logindetails'])) { 
     $model->attributes=$_POST['Logindetails']; 

     print_r($model->attributes); //check either the values are coming or not. 

     echo $model->pass ; 

     exit; // finish here the program. 

     if(isset($model->pass)) { 
      echo 'its present'; 
     } else { 
      echo 'its absent'; 
     } 

    } 

    $this->render('create',array(
     'model'=>$model, 
    )); 
} 

Я думаю, это будет полезно для вас.

Спасибо.

-1

(модель) Logindetails.php

Вы должны добавить правила,

class Logindetails extends CActiveRecord {    
public $pass; 

public function rules() { 
    return array(
     array('password', 'length', 'max'=>20), 
     **array('pass', 'length', 'max'=>20),** 
    ); 
} 

После добавления, Вы проверяете $model->pass значение получает в контроллере.

Смежные вопросы