Laravel的routes.php应该有什么?

时间:2013-09-10 12:03:16

标签: php laravel

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

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

/*
 * 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);

}));

上面的任何事情都可以(直接从路线上联系模型),还是应该以更好的方式完成?

1 个答案:

答案 0 :(得分: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的{​​{1}}方法。