【问题标题】:I cant display data in textbox for update data using yii framework我无法在文本框中显示数据以使用 yii 框架更新数据
【发布时间】:2014-04-24 06:05:35
【问题描述】:

我是 yii 框架的新手。 我正在尝试编辑数据,我无法在文本框中显示数据,这是更新数据的第一步。我的控制器是sitecontroller.php,我的视图文件是update-jobseeker.php。我有 5 张桌子 userjob_seeker_profilejob_profilelocationcategory

我收到了错误"Fatal error: Call to a member function isAttributeRequired() on a non-object in C:\wamp\www\yii_new\framework\web\helpers\CHtml.php on line 1414"

我的控制器是sitecontroller,它的动作是:

<?php
public function actionupdate_jobseeker()
{
    $id=$_GET['id'];
    $model = Yii::app()->db->createCommand()
        ->select('*')
        ->from('user u')
        ->join('job_seeker_profile s','u.id = s.user_id')
        ->join('job_profile j','u.id = j.user_id')
        ->join('location l','l.id = s.location_id')
        ->join('category c','c.id = j.category_id')
        ->where('u.id=:id', array(':id'=>$id))
        ->QueryAll();
    $this->render('update_jobseeker',array('model' =>$model));
}
?>

我的查看文件是update_jobseeker.php

<div>
   <div style="float:right;margin-right:285px;">
   <h1>Update Personal Detail</h1>
   <div class="form">
       <?php $form=$this->beginWidget('CActiveForm', array(
           'id'=>'login-form',
           'enableClientValidation'=> false,
            'htmlOptions' => array(),
            'clientOptions'=> array(
                'validateOnSubmit'=> true
             ),
        )); ?>

<p class="note">Fields with <span class="required">*</span> are required.</p>
<div class="row">
    <?php echo $form->labelEx($model,'Mobile No'); ?>
    <?php echo $form->textField($model,'contact_no'); ?>
    <?php echo $form->error($model,'contact_no'); ?>
</div>
<div class="row buttons">
    <?php echo CHtml::submitButton('Save'); ?>
</div>
<?php $this->endWidget(); ?>
</div>
 </div>

有人帮帮我吗?

【问题讨论】:

  • 这里的$model 是一个数组而不是一个对象,请改用活动记录
  • 嗨,我已经在视图文件中编辑了代码,请看...

标签: php yii


【解决方案1】:

如果您的模型名称是用户,那么找到的活动记录将是:

$criteria = new CDbCriteria();
$criteria->join = 'job_seeker_profile s On t.id = s.user_id
    inner join job_profile j ON t.id = j.user_id
    inner join location l ON l.id = s.location_id
    inner join category c ON c.id = j.category_id';
$criteria->compare('t.id' , id);

$model = User::model()->find($criteria);

【讨论】:

  • 这是主表的默认别名,这里是用户表的别名
  • 现在出现错误“CDbCommand 无法执行 SQL 语句:SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多