Задать вопрос
@lev89

Как удалить пользователя по условию?

Как удалить пользователя по условию, если роль пользователя не равно 3? Роли хранятся в отдельной таблице. При авторизации ID роли записывается в сессию. Не могу додуматься как правильно написать условие
public function deleteAction()
{
    $id = $this->getRequestID();
    $user = \R::load('users', $id);
    if ($_SESSION['user']['role_id'] == 3) {
        $_SESSION['error'] = 'Нельзя удалить суперпользователя';
    } else {
        \R::trash($user);
        $_SESSION['success'] = 'Пользователь удален';
    }
    redirect();
}
  • Вопрос задан
  • 112 просмотров
Подписаться 1 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
Есть два упыря на ютубе.
На английском это некий Дани Кроссинг, а на русском - какое-то хаудихо.
И вот они вдвоем гадят РНР сообществу так, как не смог нагадить ни один ненавистинк РНР.
Обманом завлекая простодушных зрителей, они учат их какой-то смеси шаманства и детской игры в кубики.
Уроки уровня "Возьмешь красные кубики - будет красный домик. Возьмешь синие - будет синий".
Но, главное, они внушают своим жертвам мысль, что использовать РНР можно вообще не зная программирования. Или, в случае с этй хаудихой - еще и без знания SQL.

То есть они не учат самому главному - читать и понимать свой код. Они внушают своим жертвам, что написание программы - процесс односторонний. Сложил кубики в нужной последовательности, и забыл.
А то что программу надо уметь читать, что перед тем как складывать кубики надо подумать - в каком порядке, они даже и не упоминают. Потому что сами не знают.

Вот здесь например.
В сессии у тебя чей айди? Правильно. И какой тогда смысл его проверять?

Если тебе нужно проверять роль удаляемого пользователя, то её и надо сранивать.

послушай доброго совета, забудь про ютубу и про этот редбин.
Купи нормальную книжку, Котерова, и учи язык нормально. А не эти фантики.
Ответ написан
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
После того как получили данные пользователя по id
$user = \R::load('users', $id);
надо получить роли этого пользователя
$user_roles = \R::load('roles', $user->id); //изменить под себя

И уже делать проверку по $user_roles (проверка роли "кого удаляем") а так же можно оставить проверку $_SESSION['user']['role_id'] (роль "кто удаляет") чтобы удалять мог только админ, всех "не админов"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽