gpt4 book ai didi

php - 如何使策略自动发现新的 Laravel 功能与我在不同文件夹中的模型一起使用?

转载 作者:行者123 更新时间:2023-12-04 17:28:31 26 4
gpt4 key购买 nike

我刚刚将我的 Laravel 更新到 5.8 并且无法使我的策略自动发现工作。

我认为这是因为我所有的模型都在 app/Models 中。
文档说我可以使用此门更改默认行为。

Gate::guessPolicyNamesUsing(function ($modelClass) {
// return policy class name...
});

但我不能让它工作。检查函数 '''$user->can()''' 总是为我的所有策略和模型返回 false。
真的是问题吗?模型文件夹,或者我缺少注释?

顺便说一句,如果我在 中手动映射它,一切都很好。 $政策数组位于 AuthServiceProvider.php

谢谢!

最佳答案

如果有人遇到这个问题,这是我纠正它的方法。
原来是App/Models结构是问题。 laravel 猜测策略名称的魔法考虑了模型的位置。
要绕过此行为,请将以下代码放入 app/Providers/AuthServiceProvider.php在引导功能中。

Gate::guessPolicyNamesUsing(function ($modelClass) {
return 'App\\Policies\\' . class_basename($modelClass) . 'Policy';
});
会强制看 App/Policies而不是 App/Models/Policies . (相应更改)
然后我意识到策略文件夹应该分配在 App/Models 里面。因为这是模特住的地方,但是嘿,谁知道呢?我想将我的模型放在不同的文件夹中会让我的生活更加艰难。
拜拜,希望以后能帮到人。

关于php - 如何使策略自动发现新的 Laravel 功能与我在不同文件夹中的模型一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55441277/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com