我想知道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
}
但是没有太多的教程/样本可用。我错了概念吗?如果将所有内容更改为控制器,我根本不知道如何操作。像验证和&从控制器获取输入。有人对此有所了解吗?请指教。如果显示的例子是最好的;)谢谢。
答案 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');
}
}
...并获得相同的结果,但随着应用程序的增长,更多的组织变得尤为重要。