Laravel为数字字段返回一个空数组

时间:2018-06-22 15:18:37

标签: arrays laravel laravel-blade htmlspecialchars

当我在刀片中输出查询结果时,数字字段值将作为数组返回,但是如果您查看原始记录,则该值是1或0。

Laravel版本:5.4.36

产品负责人:

  $products = Product::select('id', 'hidden')->take(2)->get();
  return view('products.index', compact('products'));

如果我在查询后附加->toArray(),问题就消失了。 但我不必(我认为)。

产品型号:

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
}

数据结构:

id: INT(10)
hidden: TINYINT(1)

刀片视图:

@foreach($products as $product)
  id: {{$product['id']}}<br>
  @if(is_array ($product['hidden']))
    hidden (array): <?=count($product['hidden'])?><br>
  @endif
  record set:  {{$product}}  <br>
@endforeach

输出

id: 7339 
hidden (array): 0
record set: {"id":7339,"hidden":0}
id: 7340
hidden (array): 0
record set: {"id":7340,"hidden":1}

1 个答案:

答案 0 :(得分:0)

这是bug,已在Laravel 5.5中修复。

您必须访问hidden作为对象属性:

{{ $product->hidden }}