大家好,我希望有人可以帮助我,我使用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 '
中的两个连续的大写字母有人知道如何解决这个问题吗?
答案 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)
两种方式(不更改网址)......
在控制器路由之前为URL 添加隐式路由:
Route::get('example/this-is-a-test', 'SomeClass@getThisIsATest');
Route::controller('example', 'SomeClass');
您可以将控制器中的方法名称更改为snake case,一切都将作为例外工作。 (虽然看起来不太漂亮)
public function get_this_is_a_test() {
return 'Hello World';
}
实际上它甚至只能用蛇案编写“有问题的”部分:getThisIsA_test
。然而,这看起来更奇怪;)