Připojení komponenty k rodiči
- majkl324
- Člen | 13
Ahoj,
snažím se poslední dobu udělat komponentu, která by se správně připojila k rodiči, respektive k presenteru. Všechno jsem dělal podle https://doc.nette.org/…s/form-reuse, ale nedaří se mi to.
Pořád dostávám buď error Component '' is not attached to ‚Nette\Application\UI\Presenter‘, když v komponentě nechám prázdný constructor, který volá parenta, nebo Service ‚83_App_Grids_Products_ProductTypes_IProductTypeFactory‘: Multiple services of type Nette\ComponentModel\IContainer found: newrelic.rum.headerControl, newrelic.rum.footerControl bez constructoru.
Přikládám jak vypadá interface a komponenta
<?php
namespace App\Grids\Products\ProductTypes;
interface IProductTypeFactory
{
/**
* @return ProductType
*/
public function create();
class ProductType extends UI\Control
{
/** @var User */
protected $userEntity;
public function setUserEntity(User $userEntity)
{
...
}
/**
* @return Grid
*/
public function create()
{
...
}
/**
* @param int $id
* @throws BadRequestException
*/
public function handleDelete($id)
{
...
}
}
?>
A tady registruji interface mezi služby v configu
<?php
services:
- App\Grids\Products\ProductTypes\IProductTypeFactory
?>
A v presenteru se snažím načíst
<?php
/** @var IProductTypeFactory @inject */
public $grid;
/**
* @return Grid
*/
public function createComponentProductTypesGrid()
{
$grid = $this->grid->create();
$grid->setUserEntity($this->userEntity);
return $grid->create();
}
?>
Díky za pomoc, hádám, že to bude nějaká úplná blbost, dříve si pamatuji, že se mi to rozchodit povedlo, ale teď vážně nevím jak dál, díky.
- majkl324
- Člen | 13
Ahoj, mám v ní udělaný grid (o5/grido). Každopádně se mi to povedlo
rozchodit, když se na to dívám jak jsem to psal tady, tak je pořád vše
stejné, jen jsem použil samostatnou šablonu pro vykreslení kompoennty. Byl
to asi problém, který jsem si neuvědomil, snažil jsme se dostat komponentu
(grid) této komponenty, což mi přijde jako docela divný způsob :)
Když jsem grid vykreslil ve vlastní šabloně této komponenty a pak už
vykreslil jen samotnou komponentu, všechno funguje jak má.