两个连续的大写REST控制器laravel

时间:2015-01-09 17:19:52

标签: php laravel laravel-4

大家好,我希望有人可以帮助我,我使用laravel 4,我有一个像这样的REST控制器

Route::controller('example', 'SomeClass');



class SomeClass extends BaseController {

public function getThisIsATest() {
    return 'Hello World';
}

}

但当我尝试输入URI localhost / example / this-is-a-test

我找不到'控制器方法。'

我之所以这么想是因为' getThisIsATest '

中的两个连续的大写字母

有人知道如何解决这个问题吗?

3 个答案:

答案 0 :(得分:0)

试试这个:

Route::resource('example/this-is-a-test', 'SomeClassController@getThisIsATest');

OR:

Route::get('example/this-is-a-test', 'SomeClassController@getThisIsATest');

看,如果这解决了你的问题&请访问Laravel Controller Docs了解更多信息

添加{{ URL::to('example/this-is-a-test'); }},您就可以了

答案 1 :(得分:0)

app/routes.php尝试按如下方式定义路线:

Route::controller("example", "testController");

将控制器类重命名为

class testController extends BaseController {

  public function index(){
    // Just have it here to be safe.
  } 
  public function getTest() {
    return 'Hello World';
  }
}

现在尝试导航到localhost/example/test。让我知道如果有效,我以前从未使用Route::controller(),所以它对我来说也是新的。

修改

由于以上对此示例不起作用,请尝试导航至localhost/example/this-is-atest而不更改控制器/路线。

答案 2 :(得分:0)

两种方式(不更改网址)......

1。使用其他路线

在控制器路由之前为URL 添加隐式路由:

Route::get('example/this-is-a-test', 'SomeClass@getThisIsATest');
Route::controller('example', 'SomeClass');

2。将方法名称更改为snake_case

您可以将控制器中的方法名称更改为snake case,一切都将作为例外工作。 (虽然看起来不太漂亮)

public function get_this_is_a_test() {
    return 'Hello World';
}

实际上它甚至只能用蛇案编写“有问题的”部分:getThisIsA_test。然而,这看起来更奇怪;)