【问题标题】:Laravel 3 Bundle Routing Variables FailingLaravel 3捆绑路由变量失败
【发布时间】:2014-02-11 08:50:51
【问题描述】:

我们想让我们的 Web 服务 API 更加 RESTful,所以我正在尝试路由变量。看起来很简单,但我遇到了 404 错误...

这是一个 Laravel 3 项目,我正在尝试定义一条新路线。
现在,我们的 URL 看起来像:api/object/v1/find?some=thing&another=thing

我的目标是让它们看起来更像:API/v2/objects/{numericID}

用这个测试时一切正常......

<?php

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);
});

..这一切都下地狱了。
调用像 \api\v2\companies\1234 这样的 URL 会引发 404。

什么给了??

【问题讨论】:

  • 试试v2/companies/(:num) - 使用这种语法 ({id}) 不是在 L3 中设置变量的方式(据我所知)

标签: php laravel laravel-3 laravel-routing


【解决方案1】:

你需要在 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')
{
    //
});

【讨论】:

猜你喜欢
  • 2017-11-09
  • 2023-03-17
  • 1970-01-01
  • 2023-02-10
  • 1970-01-01
  • 2016-12-01
  • 2012-11-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多