Ok. Here's a Gist of what your code might look 
like: https://gist.github.com/alecho/e7b573cc54140ba1706d

By making the methods private it means that CakePHP won't let them be 
publicly callable methods. This avoids redirects so that your url is still 
the same too. I think this approach is easier to test as well.

This assumes that you can't just use regular expressions on the username to 
route to different controllers or actions. In other words, your username 
has nothing to do with wether your user is a "user" or a "shop". You may 
also want to look into ensuring usernames are valid in the router with a 
custom route class but this is not required. Check out Mark Story's post on 
this: http://mark-story.com/posts/view/using-custom-route-classes-in-cakephp.

On Sunday, December 21, 2014 5:56:18 AM UTC-5, . . wrote:
>
> Thanks for clarifying regarding routes. 
>
> Could you clarify what you mean "It be a simple `if` statement that calls 
> one of two of the controllers `private` or `protected` methods which 
> contain the login for wether the username is "Bob" or "BobsShop". 
>
> I have a UsersController and a ShopsController, the former handles the 
> "Bob" username while the latter handles "BobsShop" username. So if i route 
> the /:username url to my UsersController, how should I handle the logic for 
> the "BobsShop" username? 
>
> Thanks 
>
> > On Dec 20, 2014, at 9:09 PM, Andrew Lechowicz <[email protected] 
> <javascript:>> wrote: 
> > 
> > Hi. I want to route a url to 2 controllers depending on some logic I 
> define. For example, if I have 2 usernames Bob and BobsShop, I want 
> localhost/Bob to route to my UsersController while localhost/BobsShop will 
> route to my ShopsController. I've thought of one way to accomplish this - 
> by writing a common ObjectsController that represents both a User and a 
> Shop. Is there an easier way via cake's routing mechanism? Thanks! 
> > 
> > It seems like you might be confused as to what is a route and what is a 
> controller and what is a model. A route shouldn't contain any logic, it's 
> just the mapping of URL to Controller action. Or another way to put it is 
> URL to logic to perform. I would suggest if you have a route like 
> `/:username` it would route to a sigle controller action which then decided 
> which logic to perform. It be a simple `if` statement that calls one of two 
> of the controllers `private` or `protected` methods which contain the login 
> for wether the username is "Bob" or "BobsShop". 
> > 
> > -- 
> > Like Us on FaceBook https://www.facebook.com/CakePHP 
> > Find us on Twitter http://twitter.com/CakePHP 
> > 
> > --- 
> > You received this message because you are subscribed to a topic in the 
> Google Groups "CakePHP" group. 
> > To unsubscribe from this topic, visit 
> https://groups.google.com/d/topic/cake-php/MpAJAUdAzJk/unsubscribe. 
> > To unsubscribe from this group and all its topics, send an email to 
> [email protected] <javascript:>. 
> > To post to this group, send email to [email protected] 
> <javascript:>. 
> > Visit this group at http://groups.google.com/group/cake-php. 
> > For more options, visit https://groups.google.com/d/optout. 
>

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

Reply via email to