【问题标题】:How to set and get array into cookie in laravel [duplicate]如何在laravel中设置和获取数组到cookie中[重复]
【发布时间】:2020-05-14 13:15:27
【问题描述】:

我在这里尝试使用 laravel 6 设置和获取数组 cookie,所以我在这里尝试这段代码

这个函数来设置cookie

public function booking(Request $request)
    {
        $data = [
            'name_package'=>$request->name_package,
            'price'=>$request->price,
        ];
        $array_json=json_encode($data);

        return redirect('/checkout')->withCookie(cookie()->forever( 'data',$array_json, 2880));
    }  

获取cookie的函数

public function checkout(){
        $data=\Cookie::get('data');
        $data=json_decode($data);

        return view('home/checkout')->with('data', $data);;
    }

在我的刀片中,我尝试像这样 foreach $data http://prntscr.com/qubpuy

但我得到一个错误尝试获取非对象的属性'name_package'

请帮我纠正这个错误

【问题讨论】:

标签: arrays laravel cookies


【解决方案1】:

我认为问题不在于 cookie,而在于 foreach 循环中的刀片文件。

你的数组名是$data,你的别名是$data,所以是一样的。

foreach($data as $data)

将其替换为不同的名称,如下所示。

@foreach($data as $d)
    {{ $d->name_package ?? '' }}
@endforeach

【讨论】:

  • 我已将 $data 更改为 $d 并放入 ?? '' 在回声中,但没有数据显示
  • 调试$request->name_package中是否存在值?
  • ok 先生,现在我有问题,我的输入值为空,我使用 ajax 设置输入的值,例如,如果我更改或选择,将设置输入价格的值一个选择选项。但是当我尝试发布该表单时,该值为空
  • 在解码时尝试将此 $d->name_package 转换为 $d['name_package'],然后您将获得数组而不是对象,因此您可以通过 [] 访问值
  • @KamleshPaul 他使用了json_decode($data);,这意味着他将得到一个对象而不是数组。如果他会使用json_decode($data,true);,那么它将返回一个数组。
猜你喜欢
  • 2017-12-25
  • 2017-09-05
  • 2018-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多