奇怪的是,这个功能本身工作得很好,所以我猜这可能是我的智能手机的问题,但我不知道如何修复或至少忽略错误消息(以一种安全的方式)?我也只是简单地遵循教程,它的工作很好,他和我,但我只是得到了错误消息。
这就是我的函数看起来的样子:
public function delete(Post $post) {
if (auth()->user()->cannot('delete', $post)) {
return 'You cannot do that';
}
$post->delete()
}
我已经搜索过了,看到有人建议安装一个名为“laravel-ide-helper”的composer包,但这并没有做任何事情。
此外,我使用neovim与intelephense LSP(免费版),但当切换到另一个LSP称为phpactor时,我得到一个略有不同的错误消息:类“Illuminate\Contracts\Auth\Authenticatable”上不存在方法“cannot”
任何帮助非常感谢,谢谢。
1条答案
按热度按时间aor9mmx11#
使用Request类而不是全局auth()方法来获取用户似乎摆脱了错误,并且仍然可以按预期工作(我认为我所遵循的教程内容有点过时)
像这样:
请参阅文档:https://laravel.com/docs/10.x/authorization#via-the-user-model