2014-01-21 53 views
0

我们希望使我们的webservice API更加RESTful,所以我正在尝试使用路由变量。
似乎超级简单,但我得到一个404错误......也许我搞坏的东西:)Laravele 3:绑定路由变量失败

这是一个Laravel三个项目,我试图定义一个新的路线。
现在,我们的网址如下所示:api/object/v1/find?some=thing&another=thing
我的目标是让它们看起来更像:api/v2/objects/{numericID}


当然,一切工作正常时,用这个测试:.

Route::get('v2/companies', function() { 
    return 'Hello'; 
}); 


这太:

Route::get('v2/companies/id', function($id = 5678) { 
    return print_r($id, TRUE);; 
}); 


但是当我尝试:

Route::get('v2/companies/{id}', function($id = 5678) 
{ 
    return print_r($id, TRUE); 
}); 

..它所有去地狱。
调用URL如\api\v2\companies\1234会抛出404.

什么产生?

+0

尝试'V2 /公司/(:NUM)' - 使用下面的语法('{ID}')是不是你在路线设置变量L3(据我记忆) – naththedeveloper

回答

0

您需要使用路由组通配符模式在Laravel 3 ...

强制URI段是任何数字:

Route::get('user/(:num)', function($id) 
{ 
    // 
}); 

允许一个URI段是任何字母数字字符串:

Route::get('post/(:any)', function($title) 
{ 
    // 
}); 

追赶其余URI没有限制:

Route::get('files/(:all)', function($path) 
{ 
    // 
}); 

允许URI段是可选的:

Route::get('page/(:any?)', function($page = 'index') 
{ 
    // 
}); 
+0

** AH-FREAKIN-HA !! = D **非常感谢。我正在从[http://daylerees.com/codebright/basic-routing]的例子...也许这是L4。 – mOrloff