我試圖隱藏一些元素,似乎只有第二條陳述句在起作用
第一
@if(!auth()->user()->role_id == 1) hidden @endif
第二名
@if(auth()->user()->role_id != 1) hidden @endif
uj5u.com熱心網友回復:
問題在于操作順序。您可以在此處查看 PHP 檔案中的運算子優先級。
“非”運算子 (!) 的優先級高于比較運算子,因此在進行比較之前先對其進行評估。
換句話說,你的第一個條件實際上相當于:
// note the parentheses to show explicit execution order
(!auth()->user()->role_id) == 1
因此,您實際上是先“注意”role_id,然后將該結果與數字 1 進行比較。如果您的 role_id 不是 0,則條件為假。如果您的 role_id 為 0,則您的條件為真(由于使用了松散的比較運算子)。
如果你想讓你的第一個陳述句起作用,你需要將比較括在括號中,然后“不”結果:
@if(!(auth()->user()->role_id == 1)) hidden @endif
uj5u.com熱心網友回復:
它只發生在 Laravel Blade 中。否則兩者都適用于核心 php 或 Laravel 控制器。謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/352666.html
上一篇:如何將電子郵件發送到多個地址?
