Support the ongoing development of Laravel.io →
posted 10 years ago
Views

With a route I can put a constraint:

For instance to allow only a-z letter in the book url.

Route::get ('book/{book}/view'), function ($book)
{
  return "book - view: $book";
})->where (array ('book' => [a-z]*));

Route::get ('book/{book}/edit'), function ($book)
{
  return "book - edit: $book";
})->where (array ('book' => [a-z]*));

I would like to do similar stuff for the Route::group command So I would assume the following is working, but not.

Route::group (array('prefix' => 'book/{book}'), function ($book)
{
  Route::get ('/view'), function ($book)
  {
    return "book - view: $book";
  });

  Route::get ('/edit'), function ($book)
  {
    return "book - edit: $book";
  });

})->where (array ('book' => [a-z]*));

I got Call to a member function where() on a non-object

This example works fine when the where function is removed, without the constraint...

Note: the example is just for illustration.

Any idea how to overcome?

Last updated 3 years ago.
0

Okay found it!

http://laravel.com/docs/routing#route-parameters ==> Defining Global Patterns

So I put this in front of the Route::group

Route::pattern('book' => '[a-z]*');

And it works! (thread can be closed)

Last updated 3 years ago.
0

Sign in to participate in this thread!

Eventy

Your banner here too?

karelv karelv Joined 29 Jun 2014

Moderators

We'd like to thank these amazing companies for supporting us

Your logo here?

Laravel.io

The Laravel portal for problem solving, knowledge sharing and community building.

© 2025 Laravel.io - All rights reserved.