Controller和Routes之间的区别基本上是什么。我们可以使用routes文件控制我们的数据,那么为什么我们需要控制器?
喜欢:
<?php
// app/routes.php
// route to process the ducks form
Route::post('ducks', function()
{
// process the form here
// create the validation rules ------------------------
$rules = array(
'name' => 'required', // just a normal required validation
'email' => 'required|email|unique:ducks', // required and must be unique in the ducks table
'password' => 'required',
'password_confirm' => 'required|same:password' // required and has to match the password field
);
// do the validation ----------------------------------
// validate against the inputs from our form
$validator = Validator::make(Input::all(), $rules);
// check if the validator failed -----------------------
if ($validator->fails()) {
// get the error messages from the validator
$messages = $validator->messages();
// redirect our user back to the form with the errors from the validator
return Redirect::to('ducks')
->withErrors($validator);
} else {
// validation successful ---------------------------
// our duck has passed all tests!
// let him enter the database
// create the data for our duck
$duck = new Duck;
$duck->name = Input::get('name');
$duck->email = Input::get('email');
$duck->password = Hash::make(Input::get('password'));
// save our duck
$duck->save();
// redirect ----------------------------------------
// redirect our user back to the form so they can do it all over again
return Redirect::to('ducks');
}
});
嗯,这不是我的代码,我在某处读过它,但是,这里的人已经在routes.php文件中使用了验证,在我的项目中,我在一个名为UserController的控制器中使用了验证技术,这有什么区别呢它呢?
答案 0 :(得分:2)
路由将每个传入的HTTP请求转换为操作调用,例如转换为控制器的方法,而 controller 是写入业务逻辑的位置。在一个文件中处理所有文件没有任何问题,但是一旦你的项目变得更大,管理这样的代码将是一场噩梦。它就像责任,路由,路由,路由请求到特定控制器,控制器处理它,传递结果查看。主要是它的设计模式。
答案 1 :(得分:2)
我们甚至可以将所有代码放在一个巨大的文件中而不使用任何类,但我们知道这不是一个好主意。当前的最佳实践是根据职责(单一责任原则)分离代码,以便其他开发人员更容易阅读和理解代码。通常下一个开发人员在几个月内就是你自己,所以拥有一个干净的结构不仅对其他人有益,而且在回到原来的代码时也是你的理智。
路由器名称意味着类路由数据,在这种情况下从URI到控制器,控制器处理该特定控制器的业务规则
答案 2 :(得分:0)
laravel中的路由是您定义应用程序端点的位置,控制器是您编写业务逻辑的位置。
当我开始学习并简化Laravel时,我遇到了同样的问题,我已经创建了一些MCV风格的项目请检查