PHP逻辑:比较元素的重要性

时间:2018-09-04 12:00:07

标签: php roles drupal-8

我想知道如何实现一些功能来比较每个用户角色的重要性。

我的3个角色是:directeur_cr_,comptable_cr_和salaries_cr _。

directeur_cr_> comptable_cr_> salaries_cr _

在我的循环中,我可以基于某个值(在field_val中)获得所有用户。然后,我查看每个用户的角色。

我想做的是这样:

  • 如果我的用户是directeur_cr_,则循环结束。
    • 否则,如果我的用户是comptable_cr_,则循环结束。
    • 否则,如果我的用户是salaries_cr_,则循环结束。

这个想法是我想让用户扮演最高的角色(在这里,directeur_cr_)。如果没有directeur_cr_,请查找该角色下的角色(因此为comptable_cr_)。在这一关之下,水平也是一样。

我有3个用户:

  
      
  1. 用户1:comptable_cr _
  2.   
  3. 用户2:salaries_cr _
  4.   
  5. 用户3:directeur_cr _
  6.   

我的循环实际上正在工作。我有这个结果:

  

-用户1-导演:错误comptable:正确

     

-用户2-导演:错误的comptable:错误的薪水:正确的

     

-用户3-导演:是

我正在寻找的是这个

  

-用户3-导演:是

无论是否还有其他角色(因为我想获得最高的角色)。

如果没有可用的Directeur,请改为显示comptable。

如果没有comptable,请显示薪水。

foreach($listeValuesDrupal2 as $valUnique){
  echo $valUnique;
  $users = \Drupal::entityTypeManager()->getStorage('user')
    ->loadByProperties(['field_val' => $valUnique]);
    dump($users); //show my user with $valUnique in field_val

  foreach ($users as $user){
    /*
        role : directeur_cr_ > comptable_cr_ > salaries_cr_
    */
    echo "<br/>------------------------- USER -------------------------<br/>";
    $user_has_role_directeur = $user && $user->hasRole('directeur_cr_'); //check if user has this role
    echo "directeur : "; dump($user_has_role_directeur);

    if(!$user_has_role_directeur){
      $user_has_role_comptable = $user && $user->hasRole('comptable_cr_');
      echo "comptable : ";  dump($user_has_role_comptable);//check if user has this role

      if(!$user_has_role_comptable){
        $user_has_role_salarie = $user && $user->hasRole('salaries_cr_');
        echo "salaries : "; dump($user_has_role_salarie);//check if user has this role
      }
    }       
  }
}

0 个答案:

没有答案