Normaal gesproken declareer ik een new View op de volgende manier:


$this->render('/admin/content', compact('titel', 'content') + $pagina_vars);

Waarbij titel en content specifiek voor content.php bedoeld zijn en pagina_vars variabelen bevat voor de gehele layout, e.a. metatags etc. Nu heb ik echter een situatie waar ik geen template gerelateerde variabelen hoef mee te sturen dus eigenlijk het compact gedeelte niet nodig heb. Als ik dat echter weglaat:

$this->render('/admin/content') + $pagina_vars;

worden pagina_vars niet meer herkent. Wat doe ik fout?

Edit:

Mijn fout

$this->render('/admin/content', $pagina_vars) ;

geeft het beoogde resultaat
Bij dit soort vragen is het ook handig als je er even bij vermeldt wat voor library of pakket je gebruikt. Anders is het compleet onduidelijk welk "dialect" je spreekt.

compact('titel', 'content') + $pagina_vars

Klopt dat wel?

Ik neem aan dat compact('titel', 'content') een soort van default is, en $pagina_vars mogelijke afwijkingen van deze defaults bevatten?

Maar als je A + B (waarbij A en B arrays zijn) gebruikt om een resultaatarray te produceren, dan overschrijft A de waarden van B die eenzelfde key hebben. En als compact('titel', 'content') dan toch waarden heeft die niet veranderd mogen/kunnen worden, dan heeft die operatie toch nooit enig effect?

Je zou haast zeggen dat het "compact" deel ("read only") en $pagina_vars ("variabel") een aparte behandeling verdienen en in eerste instantie niet gecombineerd zouden moeten worden?
@Thomas: als in $pagina_vars ander keys zitten dan 'titel' en 'content' (die kun je immers al via de bijbehorende global vars "instellen"), dan is dit geen probleem.
Uiteraard, als er geen overeenkomende keys zijn kan er ook niets overschreven worden.
@Thomas

Thomas van den Heuvel op 08/08/2018 12:49:12


compact('titel', 'content') + $pagina_vars

Klopt dat wel?


Dat klopt inderdaad niet maar dat is dan ook niet compleet. Dit is wat ik aangaf en dat klopt

$this->render('/admin/content', compact('titel', 'content') + $pagina_vars);	



Thomas van den Heuvel op 08/08/2018 12:49:12


Ik neem aan dat compact('titel', 'content') een soort van default is, en $pagina_vars mogelijke afwijkingen van deze defaults bevatten?



Titel en content zijn/is de inhoudelijke content voor een bepaalde template, waar $pagina_vars variabelen bevat voor de metatags, de body_id etc

Reageren