0

我来自 CodeIgniter,routes.php 文件对我来说只意味着路由(实际上没有太多逻辑)。然而,Laravel 的路线似乎已经到位;有点给出了一个图像,直接在路由中添加一些逻辑和功能还不错(而不是去控制器或模型)。

我以这种方式在 routes.php 中有一个简单的注销功能设置

/*
 * Route and action for logout
 */
Route::get('logout', function()
{
    Session::flush();                                // Remove session data
    return Redirect::route('home');                  // Redirect to home
});

好吗?我永远不会去控制器/模型,因为..

也可以在路由本身中调用多个函数吗?像:

/*
 * Route for home
 */
Route::get('/', array('as' => 'home', function()
{
     $var_1 = SomeModel1::function1();             
     $var_2 = SomeModel2::function1($var1);         

     return View::make('home')->with('var', $var_2);

}));

无论我在上面做什么(直接从路线联系模型)都可以吗,还是应该以更好的方式完成?

4

1 回答 1

2

您只能从 编写所有系统app/routes.php,但在中型和大型项目中,为了使它们按顺序排列,您最好在每个部分都使用控制器。

例子:

将此行添加到app/routes.php

Route::get('logout',array('as'=>'logout','uses'=>'AuthController@getLogout'));

app/controllers/AuthController.php

<?php

class AuthController extends BaseController {

    public function getLogout() {
        Session::flush(); // Remove session data
        return Redirect::route('home');
    }
}

这样,我制作了一个名为 的资源logout,它使用app/controllers/AuthController.php'getLogout()方法。

于 2013-09-10T12:09:44.500 回答