Jak načíst model v classe s dědičností
- karel.nev
- Člen | 21
Omlouvám se za trošku začátečnický dotaz. Mám classu s dědičností
viz níže. Rád bych tam měl model, abych mohl přistupovat k databázi.
Když ale použiji konstruktor, hlasí mi to tuto chybu:
Argument 1 passed to CelandarReservation\EventCalendarGenerator::__construct()
must be an instance of CelandarReservation\ItemManager, instance of
CelandarReservation\EventCellFactory given, called in
Mohli byste mě prosím trošku nakopnout, jak k modelu v této třídě přištupovat? Děkuji.
<?php
namespace CelandarReservation;
use blitzik\Calendar\Entities\ICell;
use blitzik\Calendar\Generator\CalendarGenerator;
use Nette\Database\Table\IRow;
use App\Model\BaseManager;
use Nette\Database\Context;
use Nette\Object;
use Nette\Database\Connection;
use Nette\Database\IStructure;
use Tracy\Debugger;
class EventCalendarGenerator extends CalendarGenerator
{
private $itemManager;
public function __construct(
ItemManager $itemManager
)
{
$this->itemManager = $itemManager;
}
.....
?>
Editoval karel.nev (27. 1. 2020 20:04)
- Kamil Valenta
- Člen | 822
Kde se EventCalendarGenerator vytváří? Je to service v neonu? Jak je tam definovaná?
- karel.nev
- Člen | 21
EventCalendarGenerator vytvářím v ItemPresenteru , viz kod níže. Jinak item manager je definovaný v neonu takhle:
- services
- App\CalendarModule\Model\ItemManager
<?php
protected function createComponentCalendar()
{
$cal = new Calendar(Calendar::LANG_CS);
$cal->setCalendarGenerator(
new EventCalendarGenerator(
new EventCellFactory(Calendar::MONDAY)
)
);
$cal->truncateDaysLabelsTo(2);
$cal->enableSelections();
$cal->setCalendarBlocksTemplate(__DIR__ . '/../templates/components/Calendar/calendarBlocks.latte');
return $cal;
}
?>
Editoval karel.nev (27. 1. 2020 22:58)
- CZechBoY
- Člen | 3608
Tak to je celkem jasny. Ty misto ItemManager predavas ItemCellFactory. Je
potreba abys dodal spravnou sluzbu.
Pokud i ten EventCalendarGenerator ma byt sluzba (bezstavova, znovupouzitelna)
tak ho zaregistruj do polozky services v konfiguraci a instanci si predej do
toho presenteru kde mas tuhle createComponent metodu.