PHP логично: сравнить значение элемента - PullRequest
0 голосов
/ 04 сентября 2018

Я хочу знать, как я могу реализовать что-то, чтобы сравнить значимость роли каждого пользователя.

Мои 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. пользователь 2: salaries_cr_
  3. пользователь 3: directeur_cr_

Мой цикл фактически работает. У меня есть такой результат:

- USER 1 - directeur: false comptable: true

- Пользователь 2 - directeur: false comptable: false salarié: true

- Пользователь 3 - directeur: true

Я ищу вот что:

- Пользователь 3 - directeur: true

независимо от того, есть ли другая роль (потому что я хочу самую высокую доступную роль).

Если 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
      }
    }       
  }
}
...