Signál a podporou složených primárních klíčů – proměnné množství parametrů nebo ‚id‘ jako „array“?
- LeonardoCA
- Člen | 296
Možná už to budu míž vyřešené, než někdo odpoví, ale stejně by mě zajímalo, jak řešíte předávání složených primárních klíčů do singnálu komponenty.
- Filip Procházka
- Moderator | 4668
Asi bych to nekomplikoval a generoval si odkaz ve tvaru
/foo?component-id=10,35
(idčka oddělená čárkou)
Na druhou stranu. Pokud potřebuji hodnotu z tabulky, která závisí na dvou ID…
Mám třeba project_id
a user_id
a protože se
struktura zanořuje, tak mi z toho přirozeně vzniká
/foo?projectId=10&userId=35
# nebo
/foo/project-10/user-35
A protože většinou jsou i persistentní, tak pak jen zavolám signál nad presenterem/komponentou a IDčka jsou jasná.
- LeonardoCA
- Člen | 296
super, dík za tip, potřebuji rozšířenou variantu č.1, protože jde o komponentu, která může zpracovávat libovolné data, tj vůbec nevím dopředu jaké jsou id a jestli má primaryKey 1,2 nebo víc sloupců a ani jména sloupců, tj. musím si do parametru nějak zakódovat i názvy id…
abych to ještě upřesnil, jde o základní komponentu/builder „gridu“ a formulářů a tlačítka chci generovat nějak takto
public function addEditButton($control, $signal = 'Edit')
{
$this->AddContent(Html::bsButton('a', ' Edit ', 'btn-mini btn-primary', Html::bsIconw('edit'))
->href($control->lazyLink($signal, $this->primaryKey))
);
return $this;
}
přičemž $this->primaryKey jsem předefinoval na pole
Dodatek:
Takže buď potřebuji mít v ‚id‘ serializované pole a nebo generovat
perzistentní parametry on runtime…
Řeším to vlastně proto, že jsem narazil na chybu při generování odkazů, „Passed more parameters than method foo::handleEdit() accepts“ a nepřišel na to jak definovat v php unlimited number of parameters, tak aby to kontrola v nette vzala. Tj. zřejmě mi zbývá jedině serializovat pole…
Editoval LeonardoCA (13. 12. 2012 1:55)
- stekycz
- Člen | 152
Pokud by to bylo možné, možná bych zkusil přepsat metodu getPersistentParams
Zavolat rodiče a na základně informací z
$this->primaryKey
vracet název persistentních proměných. Ale
píšu to dost na blind, takže jestli to má další omezení moc
netuším takhle z fleku…