predani parametru do komponenty pres interface
- vosy
- Člen | 532
ahoj mam
presenter:
/** @var \App\FrontModule\Components\Nabidky\Factories\ILevySloupekVyhledavaniControlFactory @inject */
public $LevySloupekVyhledavaniControlFactory;
protected function createComponentLevySloupekVyhledavaniControl()
{
$id = 1;
$cmp = $this->LevySloupekVyhledavaniControlFactory->create($id);
return $cmp;
}
neon:
service
- App\FrontModule\Components\Nabidky\Factories\ILevySloupekVyhledavaniControlFactory(%id%)
factory:
namespace App\FrontModule\Components\Nabidky\Factories;
interface ILevySloupekVyhledavaniControlFactory
{
/**
* @param $id
* @return \App\FrontModule\Components\Nabidky\LevySloupekVyhledavaniControl
*/
public function create($id);
}
a componentu:
namespace App\FrontModule\Components\Nabidky;
class LevySloupekVyhledavaniControl
extends \App\Components\Components
{
private $id;
/**
* @param $id
*/
function __construct($id)
{
$this->id = $id;
}
a vysledek:
Nette\InvalidArgumentException
Missing parameter 'id'.
prijde mi ze ID vsude predavam :(
- igor.pocta
- Člen | 100
V neon configu odstraň (%ID%)
? Od čeho to dědíš? \App\Components\Components dědí od UI\Applicaiton\Control?
Editoval igor.pocta (2. 3. 2017 8:49)
- vosy
- Člen | 532
igor.pocta napsal(a):
V neon configu odstraň (%ID%)
? Od čeho to dědíš? \App\Components\Components dědí od UI\Applicaiton\Control?
dedi od:
namespace App\Components;
class Components
extends \Nette\Application\UI\Control
kdyz jsem z neonu odstranil (%id%)
vysledek
Service ‚187_App_FrontModule_Components_Nabidky_LevySloupekVyhledavaniControl‘: Parameter $id in App\FrontModule\Components\Nabidky\LevySloupekVyhledavaniControl::__construct() has no type hint, so its value must be specified.
Editoval vosy (2. 3. 2017 8:53)
- vosy
- Člen | 532
NEvim co poslat aby to pomohlo.
.../vendor/nette/di/src/DI/Helpers.php:35 source Nette\DI\Helpers:: expand (arguments)
.../vendor/nette/di/src/DI/Helpers.php:40 source Nette\DI\Helpers:: expand (arguments)
.../vendor/nette/di/src/DI/Compiler.php:266 source Nette\DI\Helpers:: expand (arguments)
.../vendor/nette/di/src/DI/Compiler.php:197 source Nette\DI\Compiler:: parseServices (arguments)
.../vendor/nette/di/src/DI/Compiler.php:140 source Nette\DI\Compiler-> processServices ()
.../vendor/nette/bootstrap/src/Bootstrap/Configurator.php:268 source Nette\DI\Compiler-> compile ()
inner-code Nette\Configurator-> generateContainer (arguments)
.../vendor/nette/di/src/DI/ContainerLoader.php:113 source call_user_func_array (arguments)
.../vendor/nette/di/src/DI/ContainerLoader.php:78 source Nette\DI\ContainerLoader-> generate (arguments)
.../vendor/nette/di/src/DI/ContainerLoader.php:43 source Nette\DI\ContainerLoader-> loadFile (arguments)
.../vendor/nette/bootstrap/src/Bootstrap/Configurator.php:221 source Nette\DI\ContainerLoader-> load (arguments)
.../app/bootstrap.php:36 source Nette\Configurator-> createContainer ()
.../www/index.php:6 source require (arguments)
- vosy
- Člen | 532
AHoj
Presenter:
/** @var \App\FrontModule\Components\Nabidky\Factories\ILevySloupekVyhledavaniControlFactory @inject */
public $LevySloupekVyhledavaniControlFactory;
protected function createComponentLevySloupekVyhledavaniControl()
{
$id = 'ss';
$cmp = $this->LevySloupekVyhledavaniControlFactory->create($id);
return $cmp;
}
config
services:
- App\FrontModule\Components\Nabidky\Factories\ILevySloupekVyhledavaniControlFactory(%id%)
pred tim mma samozrejme jeste jine SERVICES
interface
namespace App\FrontModule\Components\Nabidky\Factories;
interface ILevySloupekVyhledavaniControlFactory
{
/**
* @param $id
* @return \App\FrontModule\Components\Nabidky\LevySloupekVyhledavaniControl
*/
public function create($id);
}
Control:
namespace App\FrontModule\Components\Nabidky;
class LevySloupekVyhledavaniControl
extends \App\Components\Components
{
private $id;
/**
* @param $id
*/
function __construct($id)
{
$this->id = $id;
}
/* RENDER */
function render()
{