Nano Hash - криптовалюты, майнинг, программирование

Условия панели навигации в шаблоне блейда пользователя/администратора Laravel

Извините, если вопрос глупый для вас, но, похоже, я не могу понять. У меня есть две функции isLogged и isAdmin. Они отлично работают, и на их основе я хочу создать ссылки на своей панели навигации. Я пытаюсь это

<li>Non Logged users link visible for everyone visiting the site</li>           
    @if(isLoggedIn() && !isAdmin())
        <li>LoggedIn Link</li>

            @if(isLoggedIn() || isAdmin())
                <li><a href="">Both</a></li>
            @endif      

        <li><a href="#">Logged In link</a></li> 
    @elseif(isAdmin())              

        <li><a href="#">Admin Dashboard</a></li>                                        
    @else           
        <li><a href="#">Login</a></li>
    @endif

В основном то, что я хочу создать здесь, это

  1. Все вошли в систему users, которые не являются admins, чтобы иметь некоторые ссылки, которые не видны администраторам.
  2. Все вошли в систему users, которые admins имеют разные ссылки, которые видны только им.
  3. Всем вошедшим в систему users независимо от того admins или обычные пользователи имеют дополнительные ссылки к своим ссылкам.

@if -> (BaseController::isLoggedIn() && !BaseController::isAdmin()) проверяет, зарегистрирован ли пользователь, но не администратор

затем внутри я разместил еще один, если он должен показывать <li><a href="">Both</a></li> на Admins и пользователей, так как они вошли в систему... Но я вижу эту ссылку только при входе в систему User. На Admin не видно.

Я знаю о ACL, но мне действительно не нужен ACL. Я хочу добиться этого с такими условиями.

Как построить условия?

11.04.2017

  • ссылка «Оба» не может быть там, где она у вас есть. Внутри этого блока if вы уже определили, что пользователь не является администратором, поэтому вы не можете заставить isAdmin() возвращать true там. 11.04.2017
  • Да, но где быть, если я хочу, чтобы ссылки, которые внутри, были видны в обеих ролях? 11.04.2017
  • просто используйте isLogged()? разве это не возвращает true для обоих? Есть даже Auth::check(), который вернет true, если пользователь вошел в систему, хотя я не уверен, что делает isLogged() 11.04.2017
  • isLogged() вернуть true для обоих.. например, вернуть true, если пользователь вошел в систему или нет.. не проверяет, является ли он администратором, и мне все еще нужно проверить, является ли isAdmin 11.04.2017

Ответы:


1

Предполагая, что ваши две вспомогательные функции работают правильно, что-то вроде этого было бы чище и работало бы лучше.

@if(isLoggedIn())
    // HTML for all logged in users

    @if(isAdmin())
        // HTML for admins only
    @else
        // HTML for non-admins only
    @endif

@endif
11.04.2017
  • Спасибо. Это работает .. Думаю, я могу организовать это так, как хочу, с помощью шаблона лезвия. 11.04.2017

  • 2
    @if(isLoggedIn() || isAdmin())
        <li><a href="">Both</a></li>
    @endif      
    

    Поместите это внизу

    @if(isLoggedIn() && !isAdmin())
    

    мешает его показу

    Изменить: попробуйте этот

    @if(isLoggedIn() && !isAdmin())
        <li>LoggedIn Link</li>
    @endif
    @if(isLoggedIn() || isAdmin())
        <li><a href="">Both</a></li>
    @endif      
    
    
    @if(isAdmin())              
    
        <li><a href="#">Admin Dashboard</a></li>                                        
    @else           
        <li><a href="#">Login</a></li>
    @endif
    
    11.04.2017
  • Но таким образом, если я помещу его внизу снаружи, if/elseif/else будет отображаться в конце ссылок. Я хочу, чтобы это было не в конце. 11.04.2017
  • Спасибо за помощь. Ответ Саида немного чище. +1 11.04.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..