I'm struggling with the Router in Cake 1.2 and I'm starting to think
that it might
be because I think that it's supposed to behave in a way in which it's
actually not.  Here's what I'm doing.  Maybe someone can point out
where
I'm going wrong.

=============

For multilingual sites I distinguish the different language versions
by
appending the two letter language code to the beginning of the path.
I'm now trying to get the same structure to work using Cake.


/en/controller/action/id - takes you to the English version
/it/controller/action/id - takes you to the Italian one


I also have some static pages that should be rendered with the Pages
controller.  I'd like their url structure to be:

/en/about
/en contact
/it/about
/it/contact
etc.

Following up on something that Nate wrote here:
http://groups.google.com/group/cake-php/msg/268e6000dc8665d5


I figured I could write my routes like this:

Router::connect('/:lang/:controller/:action/*', null,
array('lang'=>'en|it','controller'=>'articles|categories|tags'));

Router::connect('/*',
array('controller'=>'pages','action'=>'display'));


Now if I've understood correctly how this is supposed to work, if I
get
an url where the first part is either "en" or "it" and the second part
is one of "articles", "categories" or "tags", then the Route matches
and
we're good to go.  And, in fact, this works as expected.

Then, for one of the static pages, say "/en/about", since the "about"
part does not match one of the listed choices for the :controller
parameter, I would expect the first route to fail and for Cake to then
drop through to the next route in the list, the pages "catch-all" in
the
hopes of finding a match.

This doesn't happen though.  Instead I'm getting the error:

"Missing controller
You are seeing this error because controller Controller could not be
found."

What's happening is that with the wildcards in the first Route
statement,
it matches any url I throw at it, and not just those which match the
regex,
which in turn is creating a lot of missing controller and missing
action errors.

So my question is, am I right in expecting that the Route should not
match if the controller parameter is not one of the listed options
(which would imply that there is a bug in the Router?) or, by using
the
":controller" wildcard, have I effectively forced myself to conform to
the full
/lang/controller/action/params url structure for every single url in
the
site?

Any ideas?


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake 
PHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to