首页 > 解决方案 > 如何使用 Gate::guessPolicyNamesUsing(function ($modelClass) 函数显式映射 AuthServiceProvider 中的策略?

问题描述

只要模型和策略遵循标准的 Laravel 命名约定,Laravel 就可以自动发现策略。具体来说,策略必须位于包含模型的目录下的 Policies 目录中。因此,例如,模型可以放在 app 目录中,而策略可以放在 app/Policies 目录中。

但是,我的模型位于“app/Models”文件夹中,因此自动映射不起作用。

我尝试将策略文件夹移动到模型文件夹中,但没有成功。

我知道文档说要使用guessPolicyNamesUsing 函数进行显式映射,但我不明白如何返回策略类。

假设我有一个“App/Models/Post 模型”,在“App/Policies”中有相应的 PostPolicy,如何在guessPolicyNamesUsing 函数中返回策略类名称?

一个简短的代码会有所帮助。

谢谢。

标签: phplaravel

解决方案


推荐阅读