Laravel returns 数字字段的空数组
Laravel returns an empty array for a number field
当我在 blade 中输出查询结果时,数字字段值作为数组返回,但如果您查看原始记录,该值是 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)
Blade 视图:
@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}
这是已在 Laravel 5.5 中修复的 bug。
您必须将 hidden
作为对象访问 属性:
{{ $product->hidden }}
当我在 blade 中输出查询结果时,数字字段值作为数组返回,但如果您查看原始记录,该值是 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)
Blade 视图:
@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}
这是已在 Laravel 5.5 中修复的 bug。
您必须将 hidden
作为对象访问 属性:
{{ $product->hidden }}