Nette 2.1 – jak na model, konfigurace a přístup k němu
- simPod
- Člen | 383
Jsem zvyklý z N2.0 používat model takto:
services:
database: @Nette\Database\Connection
myModel:
class: MyModel
arguments: [@database]
//Presenter
$this->context->myModel
Jak to samé udělám v N2.1? Zkouším:
services:
- Model\MyManager
//Presenter
$this->context->myManager
Ale vrací se mi Service 'MyManager' not found
Díky
Editoval simPod (24. 12. 2013 3:39)
- JDC
- Člen | 19
simPod napsal(a):
Jak to samé udělám v N2.1? Zkouším:
services: - Model\MyManager
//Presenter $this->context->myManager
Ale vrací se mi
Service 'MyManager' not found
Díky
Máš tu službu anonymní, proto ti to nejede. Anonymní služby lze jen přes injectem nebo přes getByType() v DI Pokud bys jí chtěl volat contextem, musíš ji pojmenovat
services:
myManager: Model\MyManager
Pak už by to mělo jít přes getContext. Jinak v 2.1 je context v presenteru deprecated, lepší je použít injectování metodou injectMyManager(\Model\myManager $manager) nebo anotací @inject.
- batko
- Člen | 219
one-two napsal(a):
přes inject
v presenteru:
/** * @inject * @var Model\MyManager */ public $model;
Tohle mi bohužel nefunguje. a hlásí mi to Call to a member function getFromGroup() on a non-object
Mám komponentu Page, a vní tuto definici a nejde to, přes konstruktor není problém
Editoval batko (2. 1. 2014 20:42)