Php 无法使用yii框架按表单编辑具有用户id的特定用户数据

Php 无法使用yii框架按表单编辑具有用户id的特定用户数据,php,yii,Php,Yii,我是YII框架的新手。我正在使用YII框架进行更新操作。我有一个名为sitecontroller.php、型号为jobseekerprofile.php、视图为personal.php的控制器 我得到了一个错误: 致命错误:在第1414行的E:\wamp\www\yii\framework\web\helpers\CHtml.php中的非对象上调用成员函数isAttributeRequired() 我的桌子是求职者档案 领域 1.id 2.用户识别码 3.联络电话 4.性别 5.dob 6.ms

我是YII框架的新手。我正在使用YII框架进行更新操作。我有一个名为
sitecontroller.php
、型号为
jobseekerprofile.php
、视图为
personal.php
的控制器

我得到了一个错误:

致命错误:在第1414行的E:\wamp\www\yii\framework\web\helpers\CHtml.php中的非对象上调用成员函数isAttributeRequired()

我的桌子是求职者档案 领域 1.id 2.用户识别码 3.联络电话 4.性别 5.dob 6.mstatus 7.地址 8.位置和标识 我想根据用户id编辑联系人号码和地址中的数据

模型Jobseekerprofile.php-规则

public function rules()
  {
    return array(
                array('contact_no,address','required'),
    );
 }
controller-Sitecontroller.php

class SiteController extends Controller {

    public function actionpersonal()
  {
    $user_id = trim($_GET['id']);
    $model=Jobseekerprofile::model()->find(array(
                                         'select'=>'contact_no,address',"condition"=>"user_id=$user_id",
                                         'limit'=>1,));
    $model = Jobseekerprofile::model()->findByPk($user_id);                                  
    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));
  }

}

有人帮我吗?

似乎
$model=Jobseekerprofile::model()->findByPk($user\u id)
找不到任何东西,所以
$model
为空,这就是为什么
$model->isAttributeRequired()
抛出错误的原因。因此,请检查传入的参数,并检查是否存在具有此类id的配置文件(或者您应该按属性而不是按id进行搜索?)

public function actionpersonal() {
    $user_id = trim($_GET['id']);
    $model = Jobseekerprofile::model()->findByPk($user_id);

    if (isset($_POST['Jobseekerprofile'])) {
        $model->attributes = $_POST['Jobseekerprofile'];  //post key edited
        if ($model->save()) {
            $this->redirect(array('profile', 'user_id' => $model->user_id));
        }
    }
    $this->render('personal', array('model' => $model));
}
此外,你可以使用

public function actionPersonal($id) {
    $model = Jobseekerprofile::model()->findByPk($id);
    //
}
而不是

public function actionpersonal() {
    $user_id = trim($_GET['id']);
    $model = Jobseekerprofile::model()->findByPk($user_id);
    //
}

首先检查你在$U POST中得到了什么 如果一切正常,那么试着像这样储蓄

  $model = Jobseekerprofile::model()->findByPk($user_id);

if (isset($_POST['Jobseekerprofile'])) {
    $model->attributes = $_POST['jobseekerprofile'];
   $model->contact_no= $_POST['Jobseekerprofile']['contact_no'];  //post key edited
   $model->address = $_POST['Jobseekerprofile']['address']; 
    if ($model->save()) {
        $this->redirect(array('profile', 'user_id' => $model->user_id));
    }
}
$this->render('personal', array('model' => $model));
如果不工作,则检查模型返回的内容

$error=$model->getErrors();
print_r($error);

上面的代码肯定会告诉您为什么不保存

我认为您替换了这些查询$model=Jobseekerprofile::model()->find(数组('select'=>'contact\u no,address','condition'=>“user\u id=$user\u id”,“limit'=>1,);通过$model=Jobseekerprofile::model()->findbyattributes(数组(//编辑的'user\u id'=>$user\u id,);显示错误表“job_seeker_profile”没有名为“0”的列。这些行使错误$model=Jobseekerprofile::model()->findByPk($user_id);错误是致命错误:对E:\wamp\www\yii\framework\web\helpers\CHtml.php中的非对象调用成员函数isAttributeRequired(),第1414行显示无法解决请求“jobsite/error”的错误。(E:\wamp\www\yii\framework\web\CWebApplication.php:286)这是因为您没有自定义错误句柄OK,忘记更改路由,首先检查传入参数,数据库中是否有具有此类值的记录Hi,在顶部添加了表结构,请查看,我想根据用户id编辑联系人号码和地址尝试以下操作:Jobseekerprofile::model()->findByAttributes(数组('user\u id'=>$user\u id));我已经编辑了控制器代码请查看,这些代码$model=Jobseekerprofile::model()->findByPk($user\u id);makes error致命错误:对E:\wamp\www\yii\framework\web\helpers\CHtml.php中的非对象调用成员函数isAttributeRequired(),第1414行
  • 从这些页面值获取控制器。我在表中有用户id=97的记录。您能发布您的模型和视图代码吗?我认为您的模型规则和视图有一些问题