如何解决在 Laravel 8
我想知道将应用程序的逻辑放在哪里而不是放在控制器内部。根据MVC模式,它不应该写在控制器中,但似乎没有什么好放入的。例如,模型用于与数据库通信,视图用于以不同的顺序显示给定的数据,但我有从给定的大范围内计数、计算和绘制正确的数据。我阅读了有关事件、侦听器和服务提供者的信息,但所有说明都说要将其他内容放入其中。我尝试手动创建一些服务目录类,但控制器似乎没有看到它,并且出现以下错误。
未找到错误类“App\Services\MyService”
app\Services\MyServices.PHP
use App\Models\Lotto;
use App\Models\Duzylotek;
class MyService
{
public function suggested() {
//
}
}
app\Http\Controllers\MyController.PHP
namespace App\Http\Controllers;
use App\Services\MyService;
class MyController extends Controller
{
public function countnext()
{
(new MyService)->suggested();
}
}
解决方法
首先:
在 app 中创建一个名为 Services 的文件夹。
将您的服务放在那里。
给它一个命名空间:App\Services
与 use App\Services\YourService 一起使用
在某个时候,运行 Composer dump-autoload 进行注册(如果它默认不起作用)。
然后:MVC(这是一个通用模式) - 具有 Fat Models / Slim Controllers 的原理。 在过去(Codeigniter) - 我们大多数人过去常常将逻辑放在模型中。该模型比现在的 Eloquent 模型轻一些。
当事情变得复杂时,我们将逻辑移到一个库中(在库文件夹中)。
现在,服务只是一个类。您只需实例化它,注入您需要的任何内容并完成工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。