【问题标题】:laravel blade - how to hide the display of an html element for specific routeslaravel 刀片 - 如何隐藏特定路线的 html 元素的显示
【发布时间】:2019-02-05 18:12:05
【问题描述】:

伙计们!

我正在使用安装了 Hyn Laravel-Tenancy 的 Laravel 5.6。

我有一个对所有租户(子域)都相同的主菜单,但是,对于一个或另一个特定租户(子域),我希望从该主菜单中显示一些项目,但对于所有其他租户,即使通过 url 调用,这些菜单项也不可见且无法访问。

在 Blade 上,我使用了“@if route::has”,但即使将该路由限制为特定子域,该路由也可用于所有其他子域,因此 @if 接收为 true 并最终显示菜单项目。

我没有找到一个简单的解决方案,可以创建一个标识 url 的帮助程序,如果它来自特定的子域,则会显示该项目并且不会显示其他子域,但“我猜”它应该有一个使用 Blade 和 "routes\web" 的原生表单来实现这个结果。

谢谢!!!

【问题讨论】:

  • 您可能需要在这里自己编写一个辅助函数,因为 Blade 需要通过某种方式来了解要为哪些租户展示它。看起来该包有一种识别当前租户的方法,您可以在刀片文件中执行此操作并将其传递回您的助手。例如。 @if(app(\Hyn\Tenancy\Environment::class)->tenant() == 'specialTenant') //show nav @endiflaravel-tenancy.com/docs/hyn/5.2/…
  • laravel.com/docs/5.6/authorization 使用门来确定他们是否可以查看链接,然后您可以简单地执行@can('gate-name') 显示链接@endcan

标签: laravel laravel-routing laravel-blade


【解决方案1】:

在 laravel 中使用 gate 和 can 在 authserviceprovider 中创建一个这样的门:

 $gate->define('see-menu',function(){
            //check domains or rules or every thing that you need to check to obtain access
           //return true if user have access and false if not access
            });

在你的视图中使用可以检查查看菜单

@can('see-menu')
//your code 
         <li class="devider"></li>.......
@endcan

【讨论】:

    【解决方案2】:

    你可以这样做,我有我的路线“管理部门 listOfTeachers”,用户可以看到侧面菜单的按钮并使用它

     @if(Request::is('admin') || Request::is('department') || Request::is('listOfTeachers'))
                  <div id="mySidenav" class="sidenav">
                    <a href="javascript:void(0)" class="closebtn" onclick="closeNav()" style="font-size:40px;">&times;</a>
                    <a href="{{ url('main') }}" style="margin-top:30%;text-align: right;" class="sidenavbuttons"><p id="poficon2" style="font-family: AwesomeFont;font-size: 27px; float: right;width:auto;height:auto;padding-left: 15px;padding-right: 20px;" class="colorIcon" id="newbornbaby"></p><p style="font-size: 23px;">الرئيسية</p></a>
                    <a href="{{ url('listOfCandidates') }}" style="text-align: right;" class="sidenavbuttons"><p id="poficon2" style="font-family: AwesomeFont;font-size: 27px; float: right;width:auto;height:auto;padding-left: 15px;padding-right: 20px;" class="colorIcon" id="newbornbaby"></p><p style="font-size: 23px;">قائمة المترشحين</p></a>
                    <a href="{{ url('listOfTeachers') }}" style="text-align: right;"  class="sidenavbuttons"><p id="poficon2" style="font-family: AwesomeFont;font-size: 27px; float: right;width:auto;height:auto;padding-left: 15px;padding-right: 20px;" class="colorIcon" id="newbornbaby"></p><p style="font-size: 23px;">قائمة الاساتذة</p></a>
                    <a href="{{ url('department') }}" style="text-align: right;"  class="sidenavbuttons"><p id="poficon2" style="font-family: AwesomeFont;font-size: 27px; float: right;width:auto;height:auto;padding-left: 15px;padding-right: 20px;" class="colorIcon" id="newbornbaby"></p><p style="font-size: 23px;">الشعب و التخصصات</p></a>
                    <a href="{{ url('workersAccounts') }}"  style="text-align: right;" class="sidenavbuttons"><p id="poficon2" style="font-family: AwesomeFont;font-size: 27px; float: right;width:auto;height:auto;padding-left: 15px;padding-right: 20px;" class="colorIcon" id="newbornbaby"></p><p style="font-size: 23px;">حسابات العمال</p></a>
                  </div>
    
                    <div class="centerVertical" style="float:right;margin-right:1.2rem;" onclick="openNav()">
                        <img src="../resources/images/menu.png" style="margin-top:3px;float:left;width:27px;height:20px;background-size: contain;background-repeat: no-repeat;" alt="student">
                    </div>
    
                  @endif
    

    【讨论】:

      猜你喜欢
      • 2014-06-22
      • 1970-01-01
      • 2014-05-30
      • 1970-01-01
      • 2016-01-06
      • 1970-01-01
      • 2017-03-12
      • 2018-01-05
      • 2017-04-06
      相关资源
      最近更新 更多