在 laravel 的航海者管理面板中使用自定义控制器时数据重复
data duplicating when use custom controller in laravel's voyager admin panel
我使用 laravel 5.4 和 voyager admin panel。我创建了一个名为 recipes 的模块。我为此模块创建了数据库 table、模型和自定义控制器以及视图。我还创建了 BREAD,并在那里指出了我的自定义控制器。问题是当我填写并提交表格时,数据在 table 中重复,每次创建项目时我的 table 中都有 2 个相同的行。我认为问题在于它发送了 2 个请求,一个请求来自我的自定义路由和控制器,另一个请求来自航海者本身。但不知道如何解决。
从我的 BREAD 打印屏幕
我的路线
Route::group(['prefix' => 'admin', 'middleware' => ['admin']], function () {
\Voyager::routes(); //voyager routes
// routes for my custom module
// I can comment this routes, but result is the same
Route::resource('/recipes', 'Admin\RecipesController');
});
我的控制器
public function store(Request $request)
{
$recipe = Recipe::create($request->except(['modules']));
return redirect()
->route("recipes.index")
->with([
'message' => __('voyager.generic.successfully_added_new')." recipe",
'alert-type' => 'success'
]);
}
有什么想法吗?
问题是由于 form
元素 class form-edit-add
,因为似乎有事件绑定到此 class。我删除了它,现在它工作正常
你应该试试这个检查 AJax Request
:
public function store(Request $request)
{
if (!$request->ajax()) {
$recipe = Recipe::create($request->except(['modules']));
}
return redirect()
->route("recipes.index")
->with([
'message' => __('voyager.generic.successfully_added_new')." recipe",
'alert-type' => 'success'
]);
}
我使用 laravel 5.4 和 voyager admin panel。我创建了一个名为 recipes 的模块。我为此模块创建了数据库 table、模型和自定义控制器以及视图。我还创建了 BREAD,并在那里指出了我的自定义控制器。问题是当我填写并提交表格时,数据在 table 中重复,每次创建项目时我的 table 中都有 2 个相同的行。我认为问题在于它发送了 2 个请求,一个请求来自我的自定义路由和控制器,另一个请求来自航海者本身。但不知道如何解决。
从我的 BREAD 打印屏幕
我的路线
Route::group(['prefix' => 'admin', 'middleware' => ['admin']], function () {
\Voyager::routes(); //voyager routes
// routes for my custom module
// I can comment this routes, but result is the same
Route::resource('/recipes', 'Admin\RecipesController');
});
我的控制器
public function store(Request $request)
{
$recipe = Recipe::create($request->except(['modules']));
return redirect()
->route("recipes.index")
->with([
'message' => __('voyager.generic.successfully_added_new')." recipe",
'alert-type' => 'success'
]);
}
有什么想法吗?
问题是由于 form
元素 class form-edit-add
,因为似乎有事件绑定到此 class。我删除了它,现在它工作正常
你应该试试这个检查 AJax Request
:
public function store(Request $request)
{
if (!$request->ajax()) {
$recipe = Recipe::create($request->except(['modules']));
}
return redirect()
->route("recipes.index")
->with([
'message' => __('voyager.generic.successfully_added_new')." recipe",
'alert-type' => 'success'
]);
}