Wow it seems exactly what I need thanks a lot :) Another thing, how would you manage globally the treatment of the selected environment (retrieving the environment in the database) ? And how should I store the environment so that I could use it when needed ?
2014-07-25 22:18 GMT+02:00 Alejandro Celaya <[email protected]>: > Hi! > > You could define an optional parameter in your route and then use the Url > view helper to inherit that value. > When the param is not set in your current route it will use the default > value (or no value), otherwise it will use the current value. > > For example, If you have defined this routes: > > 'home' => [ > 'type' => 'Zend\Mvc\Router\Http\Segment', > 'options' => [ > 'route' => '/[:env]', > 'defaults' => [ > 'controller' => 'Application\Controller\Index', > 'action' => 'index' > ], > ], > ], > > 'another-route' => array( > 'type' => 'Zend\Mvc\Router\Http\Segment', > 'options' => array( > 'route' => '/foo/bar/[:env]', > 'defaults' => array( > 'controller' => 'Application\Controller\Foo', > 'action' => 'bar' > ), > ), > ), > > > When you are in www.mydomain.com/, if you use the URL view helper like > this, $this->url('another-route', [], true), it will produce the route > '/foo/bar/' > Otherwise, if you are in www.mydomain.com/another-env, the same previous > usage of the URL view helper will produce the route '/foo/bar/another-env' > This is because of the last boolean parameter of the URL view helper, > which defaults to false. In any place where you don't want the env > parameter to be inherited, just don't use the inheritance and set it > yourself like this $this->url('another-royute', ['env' => 'another-one']) > > You could define constraints for your env if you need it, and also define > a default value. > > Best regards. > > > > 2014-07-25 21:51 GMT+02:00 Emmanuel Bouton <[email protected]>: > > Hello, >> >> I'm working on a web admin that manages a list of servers. >> In the header of all the pages there's a select box for the servers >> environments. >> >> When no environment is selected, all the pages concerns all the servers. >> When an environment is selected, all the pages concerns only the server of >> this specific environment. >> >> The easy way to manage the current environment in all my controllers would >> be to store it in the session. But I'd rather send it on each request. >> That >> would allow to work on multiple environments in several tabs of the same >> browser. >> >> How would you do that ? >> Is there a proper way to change all urls in views to add the environment >> id >> when it has been selected ? maybe in the routes ? >> >> Thanks, >> Emmanuel >> > > > > -- > Alejandro Celaya Alastrué > http://www.alejandrocelaya.com >
