Php 无法使用yii框架按表单编辑具有用户id的特定用户数据
我是YII框架的新手。我正在使用YII框架进行更新操作。我有一个名为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
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的记录。您能发布您的模型和视图代码吗?我认为您的模型规则和视图有一些问题