代码之家  ›  专栏  ›  技术社区  ›  Daniel Vickers

YII EmployeeController引发错误。php

  •  -2
  • Daniel Vickers  · 技术社区  · 8 年前

    我正在使用yii2框架,并且与EmployeeController有问题。

    我总共有9个错误。

    请参阅随附的imgur链接以查看所有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;} }
    
    2 回复  |  直到 8 年前
        1
  •  1
  •   ScaisEdge    8 年前

    在下面的then find()中,您不会检索任何用户模型,因此在下一行中,当您访问$model\u->id您收到错误“尝试获取非对象的属性”

    $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();      
         }
    }
    
        2
  •  0
  •   delboy1978uk    8 年前

    var_dump()

    推荐文章