[英]How to reach doctrine repository in private (non-route) function in symfony5?
當我需要訪問公共 function 中的實體存儲庫時,我通常會為它注入 function 的參數,例如
public function showAction(DebitPeriod $debitPeriod, ExtraOpeningRepository $extraOpeningRepository)
但是,當我有一個私有 function(僅作為 controller 路由之一的子功能)時,我如何從那里到達實體存儲庫?
我希望能夠像這樣使用它
use App\Repositories\ExtraOpeningRepository;
private function assembleEntries($units,$day = null) {
$eor = new ExtraOpeningRepository;
}
或者像這樣
private function assembleEntries($units,$day = null, ExtraOpeningRepository $extraOpeningRepository) {
我得到的錯誤是這樣的:
太少 arguments 到 function App\Repository\ExtraOpeningRepository::__construct(), 0 passed
我不想像這樣從路線 controller 一直向前鏈接它:
public function showAction(DebitPeriod $debitPeriod, ExtraOpeningRepository $extraOpeningRepository) {
$units = 1;
$dataset = $this->assembleEntries($units,null,$extraOpeningRepository);
}
private function assembleEntries($units,$day = null, ExtraOpeningRepository $extraOpeningRepository) {
//do stuff
}
有沒有辦法讓它變得更干凈,而不會像上面的例子那樣混亂?
根據 Cerad 的評論,這是成功的結果 =)
use App\Repository\ExtraOpeningRepository;
class EntryController extends AbstractController
{
private $extraOpeningRepository;
public function __construct(ExtraOpeningRepository $extraOpeningRepository)
{
$this->extraOpeningRepository = $extraOpeningRepository;
}
private function assembleEntries($units,$day = null)
{
$extraOpenings = $this->extraOpeningRepository->findForDay($output[$i]['dateToFetch']);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.