在laravel的voyager管理面板中使用自定义控制器时重复数据

时间:2017-11-07 11:14:01

标签: php laravel laravel-5 voyager

我使用laravel 5.4和voyager admin panel。我创建的模块称为食谱。我为这个模块创建了数据库表,模型和CUSTOM控制器和视图。我还创建了BREAD,并指出我的自定义控制器。问题是,当我填写表单并提交表单时,数据已复制到表中,每次创建项目时,我的表中都有2个相同的行。我认为问题是它发送了2个请求,其中一个请求来自我的自定义路由和控制器,另一个来自旅行者本身。但不知道如何解决它。

从我的BREAD打印屏幕 BREAD's printscreen

我的路线

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

任何想法?

2 个答案:

答案 0 :(得分:1)

您应该尝试检查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'
            ]);
}

答案 1 :(得分:0)

问题是由于form元素类form-edit-add,因为似乎有事件绑定到此类。我删除它,现在它工作正常