【问题标题】:How to send values to session ? Laravel如何将值发送到会话?拉拉维尔
【发布时间】:2016-10-03 21:11:20
【问题描述】:

我正在做一辆购物车。现在我可以将产品添加到会话并在我的购物车中查看它们。这是我的 CartController 函数:

Add函数:

public function add(Request $request, $id)
{
    $request->session()->push('cart', $id);
    flash()->success('Prekė sėkmingai pridėtą į krepšelį.');
    return redirect('/prekes');
}

Show函数:

public function show()
{

    $products = session('cart');
    $products = Product::find($products);
    return view('cart.show', compact('products'));
}

这是一个Product 页面:

    <div class="mainContainer">
        <h1>{{$product->title}} <i class="fa fa-shopping-cart" aria-hidden="true"></i></h1><br>
                <img style="height: 200px" src="{{$product->image}}"><br>
                <p>{!! $product->description !!}</p>
        <div class="bootstrap-wrapper">
            <a style="float: right; margin-top: -150px; margin-right: 300px; font-size: 24px"
               href="/prideti-i-krepseli/{{$product->id}}" class="btn btn-success">
                <i class="glyphicon glyphicon-shopping-cart"></i> Pridėti į krepšelį</a><br>
            {{number_format($product->price, 2, '.', ',')}} EUR
        </div>
    </div>

如果我想从表单中发送一些值,我将如何将它们插入到会话中?我应该在add 函数中编写发布方法代码吗?你能给我举个例子吗?我想制作一个表格,为每个项目设置一个数量。

【问题讨论】:

标签: php laravel


【解决方案1】:

据我了解,您希望将值数组添加到会话中(购物车可以表示为数组)。

要将值存储在数组中而不是作为单个会话变量,您需要更改您的

public function add(Request $request, $id)
{
    $request->session()->push('cart', $id);
    flash()->success('Prekė sėkmingai pridėtą į krepšelį.');
    return redirect('/prekes');
}

public function add(Request $request, $id, $quantity)
{
    $product_from_db = Product::find($id);
    $product = [];
    $product['id'] = $id;
    //you can add all data you need like this etc...
    $product['name'] = $product_from_db->name;
    $product['quantity'] = $quantity;        
    $request->session()->push('cart', array_merge((array)Session::get('cart',[]), $product));    
    flash()->success('Prekė sėkmingai pridėtą į krepšelį.');
    return redirect('/prekes');
}

从会话替换接收数据

public function show()
{    
    $products = session('cart');
    $products = Product::find($products);
    return view('cart.show', compact('products'));
}

public function show()
{    
    $products = session('cart');
    return view('cart.show', compact('products'));
}

在您的视图中,您会显示这样的数据

@if(Session::has('cart'))
    @foreach(Session::get('cart') as $item)
        {{$item['id']}}
        {{$item['name']}}
        {{$item['quantity']}}
    @endforeach
@endif

【讨论】:

  • 我想将产品的数量添加到会话中。这是一个新的价值。我该怎么做?
  • @labas GamePage visogero 我已经更新了我的答案,以帮助您获得所需的解决方案。希望对你有帮助
  • 所以现在我需要在我的视图中创建一个名为“数量”的输入来获取值?
  • 再次更新答案。可能的语法错误和较小的修复可能需要。但只是为了向您展示如何实现您想要的全貌
  • 如何为 $quantity 变量增加价值?发布方法?
猜你喜欢
  • 2017-09-26
  • 2018-11-01
  • 2018-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-14
  • 2021-10-20
  • 2018-03-13
相关资源
最近更新 更多