Laravel 5.2-使用controller store()插入新的数据库记录
假设我有一个名为Laravel 5.2-使用controller store()插入新的数据库记录,laravel,Laravel,假设我有一个名为HeroController的控制器,我想创建一个新的hero对象,并将其作为新的hero插入我的数据库 我的控制器包含以下方法: public function store(Request $request) { $hero = new Hero; $hero->name = $request->name; $hero->description = $request->description;
HeroController
的控制器,我想创建一个新的hero对象,并将其作为新的hero插入我的数据库
我的控制器包含以下方法:
public function store(Request $request)
{
$hero = new Hero;
$hero->name = $request->name;
$hero->description = $request->description;
$hero->avatar = "None";
$hero->save();
return redirect('/');
}
我想在用户发布“添加新英雄”表单时使用此方法。
实际上,我正在通过我的routes.php
文件创建一个新的英雄:
Route::post('/heroes/create', function (Request $request) {
$validator = Validator::make($request->all(), [
'name' => 'required|max:255',
]);
if ($validator->fails()) {
return redirect('/')
->withInput()
->withErrors($validator);
}
$hero = new Hero;
$heroname = $request->name;
$hero->save();
return redirect('/');
});
为什么我的英雄是在ths
routes.php
中创建的,以及我如何将其更改为与我的HeroController一起工作?这样感觉更正确。非常直截了当,如果我理解正确的话:
Route::post('/heroes/create', 'HeroController@store');
如果我理解正确,最好直接通过控制器:
Route::post('/heroes/create', 'HeroController@store');
最好浏览一下控制器您确实需要了解有关RESTful控制器和资源路由的信息。这正是你想要的 您应该使用
create
操作返回带有英雄创建表单的视图,并根据用户输入使用store
操作在数据库中创建和保存数据
因此,所有逻辑都将在控制器内,您唯一的路径是:
Route::resource('heroes', 'HeroController');
您确实需要了解
RESTful控制器
和资源路由。这正是你想要的
您应该使用create
操作返回带有英雄创建表单的视图,并根据用户输入使用store
操作在数据库中创建和保存数据
因此,所有逻辑都将在控制器内,您唯一的路径是:
Route::resource('heroes', 'HeroController');
改道
路线::发布(“英雄/创造”HeroController@store");
并将当前路由的内容复制到控制器中的存储功能中将路由更改为
路线::发布(“英雄/创造”HeroController@store");
并将当前路由的内容复制到控制器中的存储函数