Laravel4:基于URI的路由

Laravel4:基于URI的路由,laravel,laravel-4,uri,laravel-routing,Laravel,Laravel 4,Uri,Laravel Routing,各位 我正在尝试做一些简单的事情。例如,如果“我的设置”中的导航如下所示: http://localhost/settings/ http://localhost/settings/general http://localhost/settings/message http://localhost/settings/users 这是否可以让我的路由器知道,当它看到设置/用户时,我希望它转到SettingsController@users? 和要转到的设置/常规SettingsContro

各位

我正在尝试做一些简单的事情。例如,如果“我的设置”中的导航如下所示:

http://localhost/settings/   
http://localhost/settings/general
http://localhost/settings/message
http://localhost/settings/users
这是否可以让我的路由器知道,当它看到设置/用户时,我希望它转到SettingsController@users? 和要转到的设置/常规SettingsController@general

问题是,我不想在routes.php中记下每个url,比如:

Route::any("settings/users", array("as" => "users", "uses" => "SettingsController@users"));
Route::any("settings/general", array("as" => "general", "uses" => "SettingsController@general"));

这有可能吗?

您需要在routes.php中使用Route Controller

Route::controller('settings', 'SettingsController');
在您的设置中,控制器按以下方法定义

class SettingsController extends BaseController {

    //URL : http://localhost/settings
    public function getIndex()
    {
        echo 'Index Method';

    }

    //URL : http://localhost/settings/message
    public function getMessage()
    {
        echo 'Message Method';
    }
}

必须使用“get”前缀并以大写字符开头。有关更多信息,请查看

谢谢Muharrem!现在工作得很好。嗨@Muharrem,使用这种方法后我遇到了一个挑战。使用与上述解决方案相同的概念,当我向控制器发送ajax请求时,会出现404错误。但是,当我在浏览器中输入该url时,它就工作了。例如,我将ajax请求发送到。其中用户状态是设置控制器中的一种方法。使用ajax时会出现404错误,但直接放在浏览器中时可以正常工作。考虑到此设置控制器具有ajax未调用的其他方法,我如何编写路由和控制器?谢谢你的时间!嗨,托奇。我认为原因在于您的ajax请求类型。如果问题是这样的,有两种解决方案可以尝试使用“GET”更改ajax类型(更改标头或jquery方法类型),也可以使用post-like:function-postMessage()更改路由控制器前缀。。否则请将您的ajax代码发送给我。