Php 无法编辑特定用户';基于yii框架的数据挖掘

Php 无法编辑特定用户';基于yii框架的数据挖掘,php,yii,Php,Yii,我是yii框架的新手。我正在使用yii框架进行更新操作。我有一个名为sitecontroller.php、model jobseekerprofile.php、view personal.php的控制器。我无法通过表单发布更新数据 我的控制器是sitecontroller.php <?php class SiteController extends Controller { public function actionpersonal() { $user_id = tri

我是yii框架的新手。我正在使用yii框架进行更新操作。我有一个名为sitecontroller.php、model jobseekerprofile.php、view personal.php的控制器。我无法通过表单发布更新数据

我的控制器是sitecontroller.php

<?php
class SiteController extends Controller
 {
 public function actionpersonal()
  {

    $user_id = trim($_GET['id']);
    $model = new jobseekerprofile();
    if(isset($_POST['jobseekerprofile']))
     {
        $model->attributes=$_POST['jobseekerprofile'];
        if($model->save())
           {
              $this->redirect(array('profile','user_id'=>$model->user_id));
           }   
    }

    $model=jobseekerprofile::model()->find(array(
                                         'select'=>'contact_no,address',"condition"=>"user_id=$user_id",
                                         'limit'=>1,));
    $this->render('personal',array('model' =>$model));
  }
}
} ?>


有人帮我吗

因为您在每次请求时都会创建新的jobseekerprofile模型,所以此代码将在您每次提交时创建新的jobseekerprofile记录。将您的操作更改为:

public function actionpersonal()
{

$user_id = trim($_GET['id']);
$model=jobseekerprofile::model()->find(array(
                                     'select'=>'contact_no,address',"condition"=>"user_id=$user_id",
                                     'limit'=>1,));
if(isset($_POST['jobseekerprofile']))
 {
    $model->attributes=$_POST['jobseekerprofile'];
    if($model->save())
       {
          $this->redirect(array('profile','user_id'=>$model->user_id));
       }   
}


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

这应该是可行的。

您尚未提供要编辑的用户的主键。 试着跟随

if($model->save())
           {
              $this->redirect(array('profile','user_id'=>$model->user_id));
           }   
$model=jobseekerprofile::model()->findByPk($id); $id是表的主键。 然后你可以写以下内容

if($model->save())
           {
              $this->redirect(array('profile','user_id'=>$model->user_id));
           }   

如果只使用$model->save(),它将插入数据,但不会更新。

在表单中添加操作,并更改控制器函数名actionppsonalcontroller name Sitecontroller.php、、我的操作名-personal、、我的视图文件名-personal.phpTry将'enableClientValidation'设置为false、删除'enctype',然后选中$jobseekerprofile->errors。jobseekerprofile规则可能存在问题。性别、出生日期、mstatus字段是必填字段,但未设置。在保存模型之前设置它。
public function actionpersonal()
{

$user_id = trim($_GET['id']);
$model=jobseekerprofile::model()->find(array(
                                     'select'=>'contact_no,address',"condition"=>"user_id=$user_id",
                                     'limit'=>1,));
if(isset($_POST['jobseekerprofile']))
 {
    $model->attributes=$_POST['jobseekerprofile'];
    if($model->save())
       {
          $this->redirect(array('profile','user_id'=>$model->user_id));
       }   
}


$this->render('personal',array('model' =>$model));
}
if($model->save())
           {
              $this->redirect(array('profile','user_id'=>$model->user_id));
           }