我希望有人能指出我正确的方向,如何将以下Laravel帖子从路由器移动到模型? Laravel文档使用路由解释所有内容,但过了一段时间它只会变成一大堆代码。
Route::post('reminder', array('before' => 'csrf', function(){
$rules = array(
'first_name' => array('required', 'min:2'),
'last_name' => array('required', 'min:2'),
'email_address' => array('required', 'email')
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()){
return Redirect::to(Input::get('ref'))->withInput()->withErrors($validator);
} else {
DB::table('mytable')->insert(
array(
'fname' => Input::get('first_name'),
'lname' => Input::get('last_name'),
'email' => Input::get('email_address'),
);
return Redirect::to(Input::get('ref'))->with('message', 'Thank you.');
}
}));
答案 0 :(得分:1)
<强>路线强>:
Route::post('reminder', array('before' => 'csrf',
'as'=> 'reminder',
'uses' => 'HomeController@index',
));
家庭控制器:
public function index()
{
$model = new HomeModel();
$input = Input::all();
$result = $model->insert($input);
if($result instanceof \Illuminate\Validation\Validator)
{
return Redirect::to(Input::get('ref'))->withInput()->withErrors($result);
} else {
if($result)
{
return Redirect::to(Input::get('ref'))->with('message', 'Thank you.');
} else {
App::abort(500);
}
}
}
<强>模型强>:
public function insert($input)
{
$rules = array(
'first_name' => array('required', 'min:2'),
'last_name' => array('required', 'min:2'),
'email_address' => array('required', 'email')
);
$validator = Validator::make($input, $rules);
if ($validator->fails()){
return $validator;
} else {
return DB::table('mytable')->insert(
array(
'fname' => $input['first_name'],
'lname' => $input['last_name'],
'email' => $input['email_address'],
);
}
答案 1 :(得分:-1)
这实际上会进入controllers
目录中的控制器。
在routes.php
Route::post('reminder', 'TestController@postReminder');
在TestController.php
<?php
class TestController extends BaseClass
{
function postReminder()
{
$rules = array(
'first_name' => array('required', 'min:2'),
'last_name' => array('required', 'min:2'),
'email_address' => array('required', 'email')
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()){
return Redirect::to(Input::get('ref'))->withInput()->withErrors($validator);
} else {
DB::table('mytable')->insert(
array(
'fname' => Input::get('first_name'),
'lname' => Input::get('last_name'),
'email' => Input::get('email_address'),
);
return Redirect::to(Input::get('ref'))->with('message', 'Thank you.');
}
}
}