亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

如何使用策略在刀片模板中正確使用@can
P粉821231319
P粉821231319 2024-04-04 13:51:55
[PHP討論組]

我無法按照文檔的建議在刀片模板中創(chuàng)建 @can()

這是我的政策:

public function update(User $user, Canal $canal): bool {
  return ($canal->user->id == $user->id) and ($user->hasPermissionTo('actualizar canal'));
}

我正在使用 Spatie 權限。無論如何,如果我將控制器中的路由保護為:

,則此策略有效
public function edit(Request $request, Canal $canal) {
    $this->authorize('update', $canal);
    return view('Canal/edit', ['canal' => $canal]);
  }

現在,我的問題出在刀片上。我想有條件地渲染一個按鈕來編輯 $canal,我正在嘗試這樣做:

@can('update', App\Models\Canal::class)
    <x-gui.link-button href="{{ route('canal.edit', $canal->id) }}" value="Modificar" />
  @endcan

這正如文檔所說。但我收到一個錯誤,它表示調用中需要另一個參數:

Too few arguments to function App\Policies\CanalPolicy::update()

所以我猜我還必須在 @can() 中向用戶發(fā)送,我將其更改為:

@can('update', Auth::user(), App\Models\Canal::class)
    <x-gui.link-button href="{{ route('canal.edit', $canal->id) }}" value="Modificar" />
  @endcan

這也不起作用,這根本不“調用”該策略。我怎么知道?我在那里放置了一些 Log::info()

有什么想法嗎?

P粉821231319
P粉821231319

全部回復(1)
P粉451614834

要解決此問題,請在 @can 的第二個參數上發(fā)送 $code 而不是 App\Models\Canal::class,例如:

@can('update', $canal)
    <x-gui.link-button href="{{ route('canal.edit', $canal->id) }}" value="Modificar" />
@endcan
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關于我們 免責申明 意見反饋 講師合作 廣告合作 最新更新
php中文網:公益在線php培訓,幫助PHP學習者快速成長!
關注服務號 技術交流群
PHP中文網訂閱號
每天精選資源文章推送
PHP中文網APP
隨時隨地碎片化學習
PHP中文網抖音號
發(fā)現有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號