YII 抛出的错误 EmployeeController.php
Error Thrown from YII EmployeeController.php
我正在使用 yii2 框架,但在使用 EmployeeController 时遇到问题。
当我尝试编辑前 6 个员工详细信息时,员工控制器抛出错误,但是前 6 个之后的每个帐户都不会抛出错误。
我总共有 9 个错误。
请看附上的imgurlink看到全部9的相册
欢迎任何帮助!
https://imgur.com/gallery/KmFGI
更新:为了取悦所有人,添加了代码的初始错误。
if(isset($_POST['Employee']['is_manager']) && $_POST['Employee']['is_manager']!=0){
$model_u = User::find()->where(['id'=>$model->id])->one();//print"<pre>";print_r($model_u);die('ddd');
if(isset($model_u->id)){
$p_user = UserAdmin::find()->where(['child_id'=>$model_u->id])->one();
}else{
$model_u = new User(); $p_user = new UserAdmin(); }
}else{
if($model->is_manager == 1 || $model->is_manager == 2){
$model_u = User::find()->where(['id'=>$model->id])->one();//print"<pre>";print_r($model_u);die('eee');
$p_user = UserAdmin::find()->where(['child_id'=>$model_u->id])->one();
}else{
$model_u = new User();
$p_user = new UserAdmin();
}
}
}
if(Yii::$app->user->can('update-employee')){ $true = true; }
else{ if($model->user_id == Yii::$app->user->id){ $true = true;}else{$true=false;} }
第 229 行尝试访问您在第 228 行创建(或尝试)的对象。但是您没有检查它是否返回了您期望的对象。 var_dump()
仔细检查它是否实际创建,我想你会发现它没有!
然后在下面的 find() 中,您不会检索任何用户模型,因此在下一行中,当您访问 $model_u->id 时,您会收到错误 "Try to get attribute of a non object"
$model_u = User::find()->where(['id'=>$model->id])->one();//print"<pre>";print_r($model_u);die('eee');
$p_user = UserAdmin::find()->where(['child_id'=> $model_u->id])->one();
'
你可以这样试试
if($model->is_manager == 1 || $model->is_manager == 2){
$model_u = User::find()->where(['id'=>$model->id])->one();//print"<pre>";print_r($model_u);die('eee');
if (isset($model_u)){
$p_user = UserAdmin::find()->where(['child_id'=> $model_u->id])->one();
} else {
$model_u = new User();
$p_user = new UserAdmin();
}
}
我正在使用 yii2 框架,但在使用 EmployeeController 时遇到问题。
当我尝试编辑前 6 个员工详细信息时,员工控制器抛出错误,但是前 6 个之后的每个帐户都不会抛出错误。
我总共有 9 个错误。
请看附上的imgurlink看到全部9的相册
欢迎任何帮助!
https://imgur.com/gallery/KmFGI
更新:为了取悦所有人,添加了代码的初始错误。
if(isset($_POST['Employee']['is_manager']) && $_POST['Employee']['is_manager']!=0){
$model_u = User::find()->where(['id'=>$model->id])->one();//print"<pre>";print_r($model_u);die('ddd');
if(isset($model_u->id)){
$p_user = UserAdmin::find()->where(['child_id'=>$model_u->id])->one();
}else{
$model_u = new User(); $p_user = new UserAdmin(); }
}else{
if($model->is_manager == 1 || $model->is_manager == 2){
$model_u = User::find()->where(['id'=>$model->id])->one();//print"<pre>";print_r($model_u);die('eee');
$p_user = UserAdmin::find()->where(['child_id'=>$model_u->id])->one();
}else{
$model_u = new User();
$p_user = new UserAdmin();
}
}
}
if(Yii::$app->user->can('update-employee')){ $true = true; }
else{ if($model->user_id == Yii::$app->user->id){ $true = true;}else{$true=false;} }
第 229 行尝试访问您在第 228 行创建(或尝试)的对象。但是您没有检查它是否返回了您期望的对象。 var_dump()
仔细检查它是否实际创建,我想你会发现它没有!
然后在下面的 find() 中,您不会检索任何用户模型,因此在下一行中,当您访问 $model_u->id 时,您会收到错误 "Try to get attribute of a non object"
$model_u = User::find()->where(['id'=>$model->id])->one();//print"<pre>";print_r($model_u);die('eee');
$p_user = UserAdmin::find()->where(['child_id'=> $model_u->id])->one();
'
你可以这样试试
if($model->is_manager == 1 || $model->is_manager == 2){
$model_u = User::find()->where(['id'=>$model->id])->one();//print"<pre>";print_r($model_u);die('eee');
if (isset($model_u)){
$p_user = UserAdmin::find()->where(['child_id'=> $model_u->id])->one();
} else {
$model_u = new User();
$p_user = new UserAdmin();
}
}