You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何实现数据库admins表is_admin值为0时隐藏指定div

Laravel权限控制隐藏DIV实现方案

1 优化控制器传参(建议调整)

你当前控制器的传参写法可以统一合并数据,避免视图取值异常:

function dashboard(Request $request){
    $data = ['LoggedUserInfo'=>Admin::where('id','=', session('LoggedUser'))->first()];
    $count = \DB::table('candidates')->count();
    $count2 = \DB::table('admins')->count();
    $data1 = \DB::table('admins')->paginate(10);

    // 合并所有变量传递到视图
    return view('dashboard', array_merge($data, compact('count','count2','data1')));
}

2 模板端添加条件判断

方案A:服务端不渲染隐藏内容(推荐,安全性更高)

直接用Blade条件指令包裹需要隐藏的DIV,is_admin === "0"时不会输出这段HTML到前端:

{{-- 只有is_admin不等于0时才渲染该DIV --}}
@if($LoggedUserInfo->is_admin !== "0")
<div class="c1" id="l1">
<div class="container">
<div class="card">
  <p class="p">No. of Candidates: {{$count}}</p>
</div>
<div class="card">
  <p class="p">No. of Sub Admins: {{$count2}}</p>
 </div>
</div>
</div>
@endif

如果要兼容LoggedUserInfo为空的场景,避免报错可以调整判断条件:

@if(!empty($LoggedUserInfo) && $LoggedUserInfo->is_admin !== "0")
<!-- DIV内容 -->
@endif

方案B:仅前端隐藏DOM

如果需要保留DOM结构只是隐藏显示,可以直接加行内样式控制:

<div class="c1" id="l1" @if($LoggedUserInfo->is_admin === "0") style="display:none" @endif>
<div class="container">
<div class="card">
  <p class="p">No. of Candidates: {{$count}}</p>
</div>
<div class="card">
  <p class="p">No. of Sub Admins: {{$count2}}</p>
 </div>
</div>
</div>

内容的提问来源于stack exchange,提问作者Dhruv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 01:39:02