我来自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);
}));
上面的任何事情都可以(直接从路线上联系模型),还是应该以更好的方式完成?
答案 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}}方法。