从数据库中的列反序列化错误

时间:2017-09-10 16:14:38

标签: laravel

因为有一天,当我想要访问未序列化的列时,我的视图有例外。这真的很奇怪,因为在某些页面中它正在工作,而其他一些页面则出现错误

希望有人可以帮助我..我不知道为什么有时它会起作用,有时却不行。我还测试了base64_encode()和base64_decode()但我现在从我的不同记录中获取所有视图的错误

  

反序列化错误offet

我创建新订单时的控制器

     $order = new Order();
     $order->cart = serialize($cart);
     ...
     $order->save();

当我反序列化时,我的控制器

public function show($id)
  {
      $order = Order::findOrFail($id);
      $order->cart = unserialize($order->cart);
      $order->cart->totalPrice;
      $prix_total = $order->cart->totalPrice;
      $structure_id = $order->structure_id;
      $structure = Structure::where('id' , '=' , $structure_id)->first();
      $federation = Structure::where('id' , '1')->first();

      return view('cotisation_structure/show' , compact('prix_total', 'order' , 'structure' , 'federation'));

  }

现在我的视图我在“购物车”列中显示记录:

@foreach($order->cart->items as $item)
                       <tr>
                           @if(Auth::user()->isFederation())
                               <td><input type="checkbox" name="checkbox[]" value="{{$item['item']->id}}"></td>
                           @endif
                           <td><a href="{!! route('licencie.show', $item['item']->id) !!}">{{$item['item']->num_licence}}</a></td>
                           <th>{{$item['item']->lb_nom}}</th>
                           <th>{{$item['item']->lb_prenom}}</th>
                           <th>{{$item['item']->structure->nom_structure}}</th>
                               <td>
                                   @if($item['item']->lb_tricolore != null)
                                       {{$item['item']->lb_activite_tricolore}} - {{$item['item']->lb_tricolore}}
                                   @else
                                       {{$item['item']->activite_licencie->lb_activite}}
                                   @endif
                               </td>
                           <th>{{$item['item']->saison->lb_saison}}</th>
                           <th>{{$order->payment_method}}</th>
                           <th>{{$item['price']}} € </th>
                           <td>{{Carbon\Carbon::parse($order->date_achat)->format('d/m/Y')}}</td>
                       </tr>
                    @endforeach

1 个答案:

答案 0 :(得分:1)

您可能将序列化字段存储在string类型的数据库表字段中,并且它被剥离为255个字符。

为了进一步调试,我建议将序列化数据保存到日志中,然后还原时。在这种情况下,您可以比较保存的数据是否与取出的数据相同。