Learn More →
程式碼如下
@if (Auth::user()->role == '1')
<div class="card-footer text-muted">
<a href="/product/edit/{{$product->id}}" class="btn btn-warning"><i class="fas fa-edit"></i></a>
<a href="/product/delete/{{$product->id}}" class="btn btn-danger"><i class="fas fa-trash-alt"></i></a>
</div>
@endif
先看前情提要 好用的Blade語法實例(點我)
這其實是一個未登入報錯,laravel好像常有這種錯誤(?),我也似懂非懂。
當使用@if又透過Auth索取值的時候,訪客就遭殃了,我也不知道為什麼@if要波及到他,不過@if判斷所有瀏覽這個頁面的人,包含未登入的訪客,都必須確認有沒有符合條件的值,符合的值可以看到被包起來的程式碼,不符合的,就看不到被包起來的程式碼。
但訪客根本就沒註冊,哪來什麼值啊。所以遭殃了。
怎麼解決?
查了好久決定修改他的描述,在@if外面多包一層,怎麼說呢…
我先判斷瀏覽這個頁面的人是不是訪客,這樣好像讓這個頁面可以接受訪客的存在,或者說這個頁面忽然認知到有訪客這種生物,所以給了訪客一個位置,就不會波及到他了,我猜的。
第一種方法
用@guest
@else
@endguest
包起來
@guest
@else
@if (Auth::user()->role == '1')
<div class="card-footer text-muted">
<a href="/product/edit/{{$product->id}}" class="btn btn-warning"><i class="fas fa-edit"></i></a>
<a href="/product/delete/{{$product->id}}" class="btn btn-danger"><i class="fas fa-trash-alt"></i></a>
</div>
@endif
@endguest
第二種方法
外面多一層@if (auth()->guest())
包起來 原本的@if
變成@elseif
@if (auth()->guest())
@elseif (Auth::user()->role == '1')
<div class="card-footer text-muted">
<a href="/product/edit/{{$product->id}}" class="btn btn-warning"><i class="fas fa-edit"></i></a>
<a href="/product/delete/{{$product->id}}" class="btn btn-danger"><i class="fas fa-trash-alt"></i></a>
</div>
@endif
laravel
laravel.7
blade
報錯
這是當頁的網址 當要連結的a標籤連結為 這個開頭沒有斜線"/" 則網址扣除當分頁累加($item與新連結視為同階分支) 如果有斜線"/" 則導向該網址
Mar 7, 2022在前端送資料到後端的時候 很多格式是有可能被串改的 因此在使用獲得的資料前 要先做驗證的動作 Laravel就有提供驗證的功能 https://laravel.com/docs/8.x/validation 直接舉例 將接收到的$request直接送入驗證
Mar 3, 2022Laravel 版本7~8.X 00.專案基本知識與指令 01.在哪一頁登入,就回到哪一頁 02.好用的Blade語法實例1 用@auth/@endauth實現部分頁面權限 03.好用的Blade語法實例1 居然遇到報錯 04.好用的Blade語法實例2 只有發布者才能編輯與刪除他發布的文章
Feb 17, 2022為了讓共筆者可以更好的新增及查找問題,以這個目錄為主要依據。 舉凡是: :::success 1.單純想分享自己搞懂的新東西 2.覺得這個技巧需要會,但就是不會 3.想學會某個外掛/套件 4.不懂這個程式碼在寫什麼
Feb 9, 2022or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up