在 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'
            ]);
}