如何在 Laravel 8 中使用表单生成器

How to use Form Builder in Laravel 8

我尝试在 Laravel 8 中使用以下包:https://github.com/kristijanhusak/laravel-form-builder

文档中说路由应该如下所示:

Route::get('songs/create', [
    'uses' => 'SongsController@create',
    'as' => 'song.create'
]);

Route::post('songs', [
    'uses' => 'SongsController@store',
    'as' => 'song.store'
]);

这对 Laravel 8 不起作用,所以我根据以下 post 更改了代码:

Route::get('songs/create', [
    SongsController::class, 'create'
]);

Route::post('songs', [
    SongsController::class, 'store'
]);

但是现在当我转到 /songs/create 时出现以下错误:

Symfony\Component\Routing\Exception\RouteNotFoundException

Route [song.store] not defined.

如何让它在 Laravel 8 中工作,包应该支持它?

你得到的错误说 song.store 没有定义这是正确的,因为你已经给它起了一个名字,但现在你没有根据给定的代码。试试这个。

Route::get('songs/create', [
    SongsController::class, 'create'
])->name('song.create');

Route::post('songs', [
    SongsController::class, 'store'
])->name('song.store');

在您的表单中,您可能使用了命名路由 song.store