3

我想知道 laravel 框架开发的最佳方法。大多数时间和教程我都在阅读,例如:Dayle 的 Laravel CodeHappy,你在这里看到的例子和他的书一样。堆栈溢出中的大多数问答,我注意到大多数开发人员还将所有请求处理放在 route.php 上。我可以知道这对于云类型的大型应用程序代码结构是否有用?在我的概念中,RESTful 是为 api 设计的,而我们可以使用控制器来检测它的获取、发布、放置或删除。像这样

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

但是没有太多可用的教程/示例。我有错误的概念吗?如果将所有内容都更改为控制器,我不知道该怎么做。像验证和从控制器获取输入。有人对此有想法吗?请指教。如果出现示例将是最好的;)谢谢。

4

2 回答 2

6

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

最后,最好将路由的灵活性与控制器的功能结合起来,例如通过使用路由调用控制器

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

在这里,您调用控制器index上的操作。home

如果您想了解更多关于 Route 与 Controller 的争论,这是一篇不错的文章。

于 2013-03-17T15:37:28.703 回答
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');
    }
}

......并获得相同的结果,但随着您的应用程序的增长,这变得特别重要。

于 2013-03-17T15:44:21.543 回答