我使用laravel 5.4和voyager admin panel。我创建的模块称为食谱。我为这个模块创建了数据库表,模型和CUSTOM控制器和视图。我还创建了BREAD,并指出我的自定义控制器。问题是,当我填写表单并提交表单时,数据已复制到表中,每次创建项目时,我的表中都有2个相同的行。我认为问题是它发送了2个请求,其中一个请求来自我的自定义路由和控制器,另一个来自旅行者本身。但不知道如何解决它。
我的路线
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'
]);
}
任何想法?
答案 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
,因为似乎有事件绑定到此类。我删除它,现在它工作正常