práce s databází v komponentě
- AdamBI
- Člen | 17
Zdravím,
Mám komponentu s názvem GraphDailyControl kde se znažím vyposivat databázi
pomocí:
private $database;
public function __construct(Nette\Database\Context $database)
{
$this->database = $database;
}
Komponentu inicializuji v BasePresenteru pomocí:
protected function createComponentGraphDaily()
{
$control = new \GraphDailyControl;
return $control;
}
Ale píše mi to chybu: Argument 1 passed to GraphDailyControl::__construct() must be an instance of Nette\Database\Context, none given, called in BasePresenter.php on line 20
Jak mohu do té komponenty dostat databázi?
Díky.
- David Matějka
- Moderator | 6445
Například nějak v services zaregistrovat přímo tu komponentu?
ne, to je problematicke. tovarna je nejlepsi
edit: jestli pouzivas phpstorm, tak si nainstaluj tenhle plugin od @jiri.pudil
- AdamBI
- Člen | 17
phpstorm nepoužívám. Udělal jsem to pomocí továrny ale teď píše: Check a type hint or annotation @return of the App\Components\IGraphDailyFactory::create() method used in service ‚24_App_Components_IGraphDailyFactory‘, class ‚App\Components\GraphDaily‘ cannot be found.
Editoval AdamBI (23. 3. 2017 11:04)
- David Matějka
- Moderator | 6445
factory mas totiz v namespace App\Components
, ale tu komponentu
uz ne – tu mas v globalnim namespace.
takze bud tu komponentu presun do stejneho namespace, nebo v return anotaci
uved FQN (tedy \GraphDaily
)
- AdamBI
- Člen | 17
Tak teď jsem vypnul debug mod a najednou mi to hodí chybu: We're sorry! The
server encountered an internal error and was unable to complete your request.
Please try again later.
Přitom s zapnutým debug modem to jede v pohodě.
V logu mi to píše: [2017–03–24 08–12–29] Error: Call to a member
function create() on null in /app/presenters/BasePresenter.php:22 @@
exception–2017–03–23–13–18–41e5517517.html
Co s tím? Zřejmě nefunguje ta továrna při vypnutém debug modu.