我正在使用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">&times;</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

10-04 20:17