关闭。这个问题是opinion-based .它目前不接受答案。
想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.
1年前关闭。
Improve this question
我有一个 Laravel 7.x 项目。我的 Controller 方法之一是开始使用不属于模型的逻辑变得强大。它是可以被其他 Controller 重用的代码。我想将它抽象化并作为辅助函数提供给 Controller 。在 Laravel 世界里,这样的逻辑会去哪里?是Provider
?我应该在文档中的哪个位置查找此 Controller 逻辑,以便将来任何其他 Controller 甚至可能的模型都可以调用所述功能?
最佳答案
我用 Services
对于这样的事情。我的服务包含业务逻辑,一个服务总是处理单个模型。例如我的简单服务:
<?php
namespace App\Services;
use App\Models\Company;
class CompanyService
{
public function create(array $data) {
// some another business logic here
return Company::create($data)
}
}
然后我可以通过 Controller 内部的依赖注入(inject)非常轻松地使用此服务:<?php
namespace App\Http\Controllers;
use App\Models\Company\Company;
use App\Services\CompanyService;
final class CompanyController extends Controller
{
/** @var CompanyService */
private $companyService;
public function __construct(CompanyService $companyService)
{
$this->companyService = $companyService;
parent::__construct();
}
public Function store($request) {
$company = $this->companyService->create( $request->validated() );
return $company->toArray();
}
}
关于php - Laravel 中的非模型逻辑在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63785426/