htmlentities()期望参数1是字符串,给定的数组? Laravel
我发现许多问题与我的问题相关,但无法找到答案。这是关于我的刀片中的foreach循环。htmlentities()期望参数1是字符串,给定的数组? Laravel
我想在我的刀片上打印所有产品名称,但我没有弄清楚如何做到这一点。
这就是我应得的产品:
---当前代码:
// controller
$id_array = Input::get('id');
$products= Products::whereIn('id', $id_array)->get();
$product_name = [];
foreach($products as $arr)
{
$product_name= $arr->lists('name');
}
返回$ PRODUCT_NAME给我这个作为输出:
["football","cola","idontknow","freshunicorn","dummy-data"]
在我的刀片只是一个简单的:
@foreach($products as $product)
{{ $product}}
@endforeach
Error: htmlentities() expects parameter 1 to be string, array given
感谢您的帮助和时间。
看来你正在一个数组中的数组中获取对象。
像这样:
array(
array(
object
)
)
这是因为你使用get()函数来获取你的模型。 get()函数总是“想要”检索多个模型。相反,你将不得不使用first()函数。
像这样:
foreach($id_array as $arr)
{
$want2editarray[] = Product::where('id', $arr)->first();
}
希望它可以帮助@Wellno评论
这可能是后:)
编辑,因为产品::这里( '身份证',$ ARR) - >第一();由于没有找到任何内容,因此返回null。
我忘了在检索产品后添加检查。
这是可以做到这样的:
foreach($id_array as $arr)
{
// First try to get model from database
$product = Product::where('id', $arr)->first();
// If $product insert into array
if ($product) $want2editarray[] = $product;
}
尝试使用型号/雄辩来获取数据。 视图应该只显示数据,而不是直接从数据库中取数据或进行繁重的计算。
我的视图不直接从我的数据库中获取任何数据。我在我的控制器中得到我想要的,并将所有数据发送到我的视图。 – WellNo
为什么使用循环ID?您可以通过标识找到所有产品:
$products = Product::whereIn('id', $id_array)->get();
然后在刀片模板
@foreach($products as $product)
{{ $product->name }}
@endforeach
控制器的输出是一样的,这就是很好的使用
$products
。如果我想在我的刀片上打印$ product-> name,我正在尝试获取非对象的属性 – WellNo编辑我的答案以解决您的问题@WellNo –
我已经做了这些:)但这并没有解决我的问题..我的刀片仍然给我一个:试图获得非对象的属性 - 我将更新我的问题与我目前的代码:) – WellNo