2014-03-31 67 views
0

我在我的項目中有一個視圖部分,並且使用CGridView列出表格中的所有數據,在網格中也有編輯和刪除選項來編輯和刪除特定行。編輯yii中的特定記錄

我堅持section.I我如何獲得editjob.php dispalyed特定行數據工作的編輯,我已經做了一些事情,但沒有use.My代碼如下,

在使用CgridView我認爲工作部分,

'buttons' =>array('update'=>array(

    'label'=>'edit', 
    'url'=>'Yii::app()->controller->createUrl("UpdateJob",array("id"=>$data["id"]))', 

    )) 

在型號UpdateJob:

public function edit() 
{ 

$criteria=new CDbCriteria; 

$criteria->find('id','Admin',true); 

return new CActiveDataProvider('viewjob', array(
    'criteria'=>$criteria, 
    // 'sort'=>array(
     // 'defaultOrder'=>'key_skills ASC', 
    //), 
)); 
在控制器

public function actionUpdateJob() 
{ 

    if(isset($_GET['id'])) 
    { 
     $id=$_GET['id']; 
    } 

    $model = new UpdateJob('edit'); 
    $params = array('model' => $model,'id' => $id //passing the id like this 
    ); 



    $this->render('update', $params); 
} 

而且finaly鑑於書面類似,但顯示錯誤

<div class="row"> 
     <?php echo $form->labelEx($model,'Company Name'); ?> 
     <?php echo Chtml::textField('posted_by',UpdateJob::model()->FindByPk($model->id)->posted_by); ?> 
     <?php echo $form->error($model,'posted_by'); ?> 
    </div> 

我是在正確的軌道。

回答

0

您正在加載新的模型而不是提取現有的模型。替換此行:

$model = new UpdateJob('edit'); 

通過這條線:

$model = UpdateJob::model()->findByPk($id); 

要保存你這樣做的數據:

if(isset($_POST['UpdateJob'])) { 
    $model->scenario='edit'; 
    $model->attributes=$_POST['UpdateJob']; 
    if($model->save()) 
     $this->redirect(array('admin'); 
} 
+0

感謝米歇爾,......我應該怎麼顯示particiular記錄在編輯表單中,就像我希望所有與id ='1'相對應的數據一樣,我應該如何實現該功能。 – saji

+0

確保「findByPk」的第一個參數包含您正在嘗試編輯的記錄的ID。 – Michiel

+0

以及視圖部分是什麼......它是顯示數據的正確方法。 – saji