【问题标题】:Displaying unserialize value in blade Laravel在刀片 Laravel 中显示反序列化值
【发布时间】:2023-03-11 06:03:01
【问题描述】:

我在我的代码中序列化了数据,让我在输入数据时更加灵活

但我仍然不知道如何在刀片中显示序列化数据

这是我的序列化数据

这是我的控制器

public function preview($id)
  {
    $form = NewForm::whereId($id)->firstOrFail();
    // return $form;

    if($form->is_published)
    {
      $data['form'] = $form;
      $data['participant'] = $form->participant;
      $data['idea'] = $form->idea;
      $data['character'] = $form->character;
      $data['link'] = $form->link;
      $data['images'] = $form->images;
      $data['finance'] = $form->finance;
      $data['competition'] = $form->competition;
      $data['competition_list'] = $form->competition_list;
      $data['audition'] = $form->audition;
      $data['confirmation'] = $form->confirmation;
      $data['survey'] = unserialize($form->survey);

      // return $data;

      $pdf = PDF::loadView('pdf.form', $data);

      return $pdf->stream('DSCX'.sprintf("%04d", $form->id).'.pdf');
    }

    return 'Proposal not published';
  }

这是我的刀

<label>Survey</label>
   <p>{{ $survey->source }}</p>
</td>

当我这样做时

反序列化($form->survey) 它正在返回此错误 unserialize():251 字节的偏移量 0 处出错

如何显示数据?谢谢

【问题讨论】:

    标签: php laravel serialization


    【解决方案1】:

    您需要在该字符串上调用unserialize() 以将其转换为适当的数组,然后您可以显示您的数组属性。

    在你的控制器中做这样的事情,然后将数据传递给你的视图:

    $survey = unserialize($form->survey);
    

    然后在刀片视图中遍历该数组:

    @foreach ($survey as $line)
        <p>{{ $line }}</p>
    @endforeach
    

    【讨论】:

    • 我应该在“prop”中放什么?
    • 我将控制器代码放在我的问题中,请查看它。谢谢
    • 我现在打印_r $source 看看你有什么键:) 然后你可以在你的视图中访问这些键。或者在您看来,仅通过 $source 进行 foreach 将是另一种选择。
    • 更新了我的答案,以显示您将如何遍历未序列化的 $survey 数组。还更改了名称以匹配您的名称。
    • 它没有返回值。它只是返回一个整数
    猜你喜欢
    • 2021-04-12
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 2020-06-18
    相关资源
    最近更新 更多