【问题标题】:laravel iterating the result from the eloquent model in bladelaravel 迭代刀片中 eloquent 模型的结果
【发布时间】:2017-02-05 15:37:11
【问题描述】:

我从具有一对多关系的模型中得到如下结果

{
   "id":1,
   "name":"asdjash",
   "position":"jhkjh",
   "about":"hkjhkj",
   "message":"hkjhkj",
   "image":"demo.jpg",
   "status":"Active",
   "created_at":"2017-02-07 00:00:00",
   "updated_at":"2017-02-09 00:00:00",
   "personality_slider_images":[
      {
         "id":1,
         "image_name":"one.jpg",
         "personality_id":"1",
         "created_at":"2017-02-09 00:00:00",
         "updated_at":"2017-02-11 00:00:00"
      },
      {
         "id":2,
         "image_name":"two.jpg",
         "personality_id":"1",
         "created_at":"2017-02-10 00:00:00",
         "updated_at":"2017-02-26 00:00:00"
      }
   ]
}

我想在页面上显示所有详细信息

如下

 <div class="well">
       <p><h4>Name : </h4> 
       {{ $personality->name }}
       </p>
       <p><h4>Position : </h4> 
       {{ $personality->position }}
       </p>
       <p><h4>About : </h4> 
       {{ $personality->about }}
       </p>
       <p><h4>Image : </h4> 
       <img src="{{ URL::to('/contents/personality/' . $personality->image) }}" alt="{{ $personality->image }}" width="150" height="180"  style="display: block; ">                      
       </p>
       <p><h4>Message : </h4> 
       {{ $personality->message }}
       </p>
       <p><h4>SliderImage : </h4> 
       {{ $personality }}

       </p>
       <p><h4>Status : </h4> 
       {{ $personality->status }}
       </p>
 </div>

我试过了

@foreach($personality->personality_slider_images as $p)
  {{ $p->image_name }}
@endforeach

但它给出的错误如下

为 foreach() 提供的参数无效

谁能帮我解决这个问题?

【问题讨论】:

  • 你能说明你是如何得到$personality 和模型中的关系的吗? foreach 要求参数是数组或集合。确保 $personality-&gt;personality_slider_images 给出一个数组或集合。

标签: php laravel blade


【解决方案1】:

我看到你有 json 数组,

  1. 使用json_decode对其进行解码

    $decode = json_decode($encode);

  2. 现在遍历你的循环,

    @foreach($personality->personality_slider_images as $p)

    {{ $p->image_name }}

    @endforeach

它会起作用的。

试一试。

【讨论】:

  • 谢谢。有用。需要建议“我是否需要正确格式化从模型返回的结果,例如完全以数组或 JSON 格式,如果是,那么我应该如何处理它。”谢谢
  • 先不客气。其次,如果你需要纯数组,那么 json_decode($your_arr, true);这里 true 返回关联数组,但如前所述,一切都是有原因的,您会看到您的要求,并根据需要使用该函数。意味着你可以做任何一种方式。
【解决方案2】:

您应该为实际数组添加一个 for each,而不是为该数组中的变量添加一个。

假设您的数组名称是 $personalities,它应该如下所示。

@foreach ($personalities as $personality)
Insert the HTML from your sample above in here. 
@endforeach

要检索图像对象,您必须执行以下操作

$personality->personality_slider_name['image_name]

【讨论】:

  • Op 已经发布了返回的数据。 $personality 不是一个数组。因此,对 $personality 进行 foreach 并不能解决问题
  • @VinitSarvade 它确实解决了这个问题,因为这个人正在尝试遍历位于数组中的一个对象,除非该对象也是一个包含许多对象的数组,否则该数组将无法工作,而personal_slider_images 不是。我刚刚向他们展示了如何正确循环遍历对象,以及如何从personality_slider_images 中检索变量。
  • 但我看不到 $personality 在数组中的位置。你可以清楚地看到,个性是一个对象和数组。而personality_slider_images 的值是一个数组。
猜你喜欢
  • 1970-01-01
  • 2017-09-13
  • 2017-08-01
  • 2020-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-08
相关资源
最近更新 更多