我正在使用laravel并且为了存储类别我使用了Modal
我想有两个单独的按钮来提交新类别
一个是“商店”
第二个是“存储并继续”,按下此按钮后,我要存储新类别,并在重定向后显示新模式
我怎样才能做到这一点?
这是我的表格
<div class="modal fade bd-example-modal-xl" id="AddProductCategoryModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">افزودن دسته بندی جدید</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body modal-scroll">
<form action="{{ route('product-category.store') }}" method="post" class="form-horizontal">
@csrf
<div class="form-group mb-0">
<div class="input-group mt-3">
<div class="input-group-prepend"><span class="input-group-text bg-light min-width-140" id="basic-addon7">عنوان دسته بندی :</span></div>
<input type="text" class="form-control inputfield" name="name" placeholder="مثال: ورزشی">
</div>
<div class="input-group mt-3">
<div class="input-group-prepend"><span class="input-group-text bg-light min-width-140" id="basic-addon7">توضیحات دسته بندی :</span></div>
<input type="text" class="form-control inputfield" name="description" placeholder="مثال: توضیحات مختصری درمورد دسته بندی">
</div>
</div>
<!--end form-group-->
</div>
<div class="modal-footer justify-content-between">
<button type="button" class="btn btn-danger" data-dismiss="modal">انصراف</button>
<div class="group">
<button type="submit" class="btn btn-primary">store</button>
<button type="submit" class="btn btn-primary">store and continu</button>
</div>
</div>
</form>
</div>
</div>
</div>
这是我的控制器
public function store(ProductCategoryRequest $request)
{
if(\Auth::user()->shop()->first()->ProductCategories()->where('name',$request->name)->get()->count() == null){
$productCategory = new ProductCategory;
$productCategory->name = $request->name;
$productCategory->description = $request->description;
$productCategory->shop_id = \Auth::user()->shop()->first()->id;
$productCategory->save();
alert()->success('دسته بندی جدید شما باموفقیت اضافه شد.', 'ثبت شد');
return redirect()->route('product-category.index');
}
else{
alert()->error('دسته بندی با این نام قبلا در فروشگاه شما ثبت شده است ', 'خطا');
return redirect()->route('product-category.index');
}
}
顺便说一句,我的路线是一种资源
PHP Route::resource('product-category', 'ProductCategoryController');
最佳答案
从2个按钮处理提交。给具有name
的按钮一个action
属性,动作名称的值可以说:
<div class="modal-footer justify-content-between">
<button type="button" class="btn btn-danger" data-dismiss="modal">انصراف</button>
<div class="group">
<button type="submit" name="action" value="justSave" class="btn btn-primary">store</button>
<button type="submit" name="action" value="saveAndContinue" class="btn btn-primary">store and continu</button>
</div>
</div>
然后在您的存储方法中检查以下情况:
public function store(Request $request)
{
switch ($request->input('action')) {
case 'justSave':
if(\Auth::user()->shop()->first()->ProductCategories()->where('name',$request->name)->get()->count() == null){
$productCategory = new ProductCategory;
$productCategory->name = $request->name;
$productCategory->description = $request->description;
$productCategory->shop_id = \Auth::user()->shop()->first()->id;
$productCategory->save();
alert()->success('دسته بندی جدید شما باموفقیت اضافه شد.', 'ثبت شد');
return redirect()->route('product-category.index');
}
else{
alert()->error('دسته بندی با این نام قبلا در فروشگاه شما ثبت شده است ', 'خطا');
return redirect()->route('product-category.index');
}
break;
case 'saveAndContinue':
if(\Auth::user()->shop()->first()->ProductCategories()->where('name',$request->name)->get()->count() == null){
$productCategory = new ProductCategory;
$productCategory->name = $request->name;
$productCategory->description = $request->description;
$productCategory->shop_id = \Auth::user()->shop()->first()->id;
$productCategory->save();
session()->flash('flashModal');
alert()->success('دسته بندی جدید شما باموفقیت اضافه شد.', 'ثبت شد');
return redirect()->route('product-category.index');
}
else{
alert()->error('دسته بندی با این نام قبلا در فروشگاه شما ثبت شده است ', 'خطا');
return redirect()->route('product-category.index');
}
break;
}
}
在您的视图中检查会话,并在存在会话时触发模式:
@if(session()->has('flashModal'))
<script>
$('#YourModalId').modal('show');
</script>
@endif