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");

并将当前路由的内容复制到控制器中的存储函数