Laravel中的路线与控制器

时间:2013-03-17 14:52:37

标签: php rest url-routing laravel

我想知道laravel框架开发的最佳方法。我经历过的大部分时间和教程,例如:Dayle的Laravel CodeHappy,example as what you see here is the same with his book。堆栈溢出中的大多数Q& A,我注意到大多数开发人员也将所有请求处理放在route.php上。我可以知道云计算是一种很棒的应用程序代码结构吗?在我的概念中,RESTful是为api设计的,而我们可以使用控制器来检测它的获取,发布,放置或删除。像这样

if ($_POST)
    {
       // Try and login user
    }
    else
    {
       // Show login form
    }

但是没有太多的教程/样本可用。我错了概念吗?如果将所有内容更改为控制器,我根本不知道如何操作。像验证和&从控制器获取输入。有人对此有所了解吗?请指教。如果显示的例子是最好的;)谢谢。

2 个答案:

答案 0 :(得分:6)

这个问题确实没有确切的答案。无论您使用路由或控制器(或两者,这是完全可以接受的以及大多数人正在做什么),取决于您的应用程序。一般来说,如果您的路由似乎有很多业务逻辑,您应该考虑将它们“转换”为控制器,因为控制器更容易维护和忽略,尤其是对于大型应用程序。

最后,最好将路线的灵活性与控制器的力量相结合,例如calling a controller using a route

Route::get('welcome', 'home@index');

您可以在index控制器上调用home操作。

This是一篇很好的文章,如果你想了解更多关于路线与控制器的争论。

答案 1 :(得分:4)

您可以从控制器内部访问所有相同的类,您可以在附加到该路径的匿名函数内访问该控制器。

例如,如果你有这条路线:

Route::post('register', function(){
     $user = new User();
     $user->username = Input::get('username');
     $user->password = Hash::make(Input::get('password'));

     $user->save();

     return Redirect::to('home');
});

您可以将其替换为:

Route::post('register', array('uses' => 'auth@register'));


class Auth_Controller extends Base_Controller {

    public static $restful = true;

    public function post_register() {
         $user = new User();
         $user->username = Input::get('username');
         $user->password = Hash::make(Input::get('password'));

         $user->save();

         return Redirect::to('home');
    }
}

...并获得相同的结果,但随着应用程序的增长,更多的组织变得尤为重要。