首页 > 解决方案 > 如何从多步骤表单将数据添加到 laravel 中的一个会话

问题描述

我正在尝试使用 laravel 创建多步骤表单,并且我遵循(添加产品)步骤。但我仍然无法将第二步数据放入同一会话中。我在互联网上搜索但没有得到解决方案。有人可以帮忙吗?我是 laravel 的新手

        public function createStep1(Request $request)
{
    $product = $request->session()->get('product');
    return view('products.create-step1',compact('product', $product));
}

public function postCreateStep1(Request $request)
{

    $validatedData = $request->validate([
        'firstname' => 'required',
        'lastname' => 'required',

    ]);

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

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

}
    public function createStep2(Request $request)
{
    $product = $request->session()->get('product');
    return view('products.create-step2',compact('product', $product));
}


public function postCreateStep2(Request $request)
{
    $product = $request->session()->get('product');
    $validatedData = $request->validate([
        'address' => 'required',
        'city' => 'required',
    ]);

        $product = $request->session()->get('product');
        $product->fill($validatedData);
        $request->session()->put('product', $product);

/** * 此步骤数据未放入此会话。我需要知道如何放置这些 */

} 返回重定向('/products/create-step3');

}

标签: laravelsession

解决方案


试试这个。

开头:

use Session;

把东西放在会话中:

Session::put('product', $product);

要取回它:

Session::get('product');

完成后不要忘记忘记它:

Session::forget('product');

冲洗一切:

Session::flush();

推荐阅读