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

two consecutive uppercase REST controller laravel

大家好我希望有人能帮助我,我正在使用 laravel 4 并且我有一个像这样的 REST 控制器

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



class SomeClass extends BaseController {

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

}

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

我得到一个'Controller method not found.'

我想是因为'getThisIsATest'

中两个连续的大写字母

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

试试这个:

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

或:

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

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

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

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

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

并将您的控制器 class 重命名为

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(),所以它对我来说也是新的。

编辑

由于以上不适用于此示例,请尝试在不更改 controller/route.

的情况下导航至 localhost/example/this-is-atest

两种方式(不改变URL)...

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

实际上它甚至可以只写 "problematic" 蛇形的部分:getThisIsA_test。然而,这看起来更奇怪 ;)