微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

多步骤表单PHP Laravel

如何解决多步骤表单PHP Laravel

我尝试创建多步骤表单,但是每当我尝试选择添加产品图片https://i.stack.imgur.com/r37Ph.png时,它都会返回错误https://i.stack.imgur.com/dLf9f.png。 下面,我将显示我的create-step1.blade.PHP以及控制器的代码。如果需要其他任何方法显示导致错误的原因,请告诉我。

create-step1.blade.PHP

    <h1 class="text-center">Step 1- Add New Recipe</h1>
    <hr>
    <form action="/recipes/create-step1" method="post">

        {{ csrf_field() }}

    <div class="container">
        <div class="row">
            <div class="col-8 offset-2">

                <div class="row">
                    <h1>Add New Recipe</h1>
                </div>

                <div class="form-group row">

                    <label for="title" class="col-md-4 col-form-label">Recipe Title</label>

                    <input id="title"
                           type="text"
                           class="form-control{{ $errors->has('title') ? ' is-invalid' : '' }}"
                           name="title"
                           value="{{ old('title') }}"
                           autocomplete="title" autofocus>



                    @if ($errors->has('title'))
                        <span class="invalid-Feedback" role="alert">
                            <strong>{{ $errors->first('title') }}</strong>
                        </span>
                    @endif
                </div>

                <hr>

                <section class="Description">
                    <div class="form-group row">
                        <label for="description" class="col-md-4 col-form-label">Recipe Description</label>

                        <textarea class="form-control {{ $errors->has('description') ? ' is-invalid' : '' }}"
                                  name="body"
                                  id="description"
                                  rows="5"
                                  placeholder="Your Post Here"
                                  value="{{ old('description') }}"
                                  autocomplete="description" autofocus>
                        </textarea>

                        @if ($errors->has('description'))
                            <span class="invalid-Feedback" role="alert">
                            <strong>{{ $errors->first('description') }}</strong>
                        </span>
                        @endif

                    </div>
                </section>

                <hr>

                <button type="submit" class="btn btn-primary">Add Product Image</button>
            </div>
        </div>
    </div>
    </form>

@endsection

RecipesController.PHP

class RecipesController extends Controller
{
    /**
     * Show the step 1 Form for creating a new product.
     *
     * @param Request $request
     * @return Application|Factory|View
     */
    public function createStep1(Request $request)
    {
        $recipe = $request->session()->get('recipe');

        return view('recipes.create-step1',compact('recipe',$recipe));
    }

    /**
     * Post Request to store step1 info in session
     *
     * @param  \Illuminate\Http\Request  $request
     * @return Application|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
     */
    public function postCreateStep1(Request $request)
    {

        $validatedData = $request->validate([
            'title' => 'required',]);

        if(empty($request->session()->get('recipe'))){
            $recipe = new PostRecipes();
            $recipe->fill($validatedData);
            $request->session()->put('recipe',$recipe);
        }else{
            $recipe = $request->session()->get('recipe');
            $recipe->fill($validatedData);
            $request->session()->put('recipe',$recipe);
        }

        return redirect('/recipes/create-step2');

    }

    /**
     * Show the step 2 Form for creating a new recipe.
     *
     * @return Application|Factory|Response|View
     */
    public function createStep2(Request $request)
    {
        $recipe = $request->session()->get('recipe');
        return view('recipes.create-step2',$recipe));
    }

    /**
     * Post Request to store step1 info in session
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function postCreateStep2(Request $request)
    {
        $recipe = $request->session()->get('recipe');
        if(!isset($recipe->productImg)) {
            $request->validate([
                'recipeimg' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',]);

            $fileName = "recipeImage-" . time() . '.' . request()->recipeimg->getClientOriginalExtension();

            $request->recipeimg->storeAs('recipeimg',$fileName);

            $product = $request->session()->get('recipe');

            $product->recipeImg = $fileName;
            $request->session()->put('recipe',$recipe);
        }
        return redirect('/recipes/create-step3');

    }

    /**
     * Show the Product Review page
     *
     * @param Request $request
     * @return Application|Factory|View
     */
    public function removeImage(Request $request)
    {
        $recipe = $request->session()->get('recipe');
        $recipe->recipeImg = null;
        return view('recipes.create-step2',compact('product',$recipe));
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?