です。phpで配列を生成して、カート内の商品に割引があるかどうかを確認します。私のコード:は、パラメータ2が配列であると想定しています。オブジェクトは
public function actionPrices($request, $action)
{
$cartId = $request->cookie('cartid');
$currentCart = Cart::findOrFail($cartId);
$items = CartItem::where('cart_id','=',$currentCart->id)->get();
$foo = array();
$actionFilters = ActionFilter::where('discount_action_id', $action->id)->lists('filter_options_id');
//if there are no $actionfilters nothing needs an extra check
if (count($actionFilters) == 0)
{
foreach ($items as $item)
{
for($i = 0; $i < $item->amount; $i++)
{
array_push($foo, $item->ProductSize->product->Priceval);
}
}
}
else
{
foreach ($items as $item)
{
$product = $item->ProductSize->product;
$filters2 = ProductFilter::where('product_id', '=', $product->id)->lists('filter_option_id');
$inArray = false;
foreach ($actionFilters as $f) {
//CODE CRASHED CHERE
if (in_array($f, $filters2)) {
$inArray = true;
}
}
if ($inArray)
{
for($i = 0; $i < $item->amount; $i++)
{
array_push($foo, $item->ProductSize->product->Priceval);
}
}
}
}
sort($foo);
return $foo;
}
この場所でクラッシュする可能性がありますか?
エラーは、引数2($ filters2)が配列ではないことを示しています。しかし、私はarrayを返すlists()関数で$ filters2を取得します。ドキュメントから
あなたは、単一の列の値を含む配列を取得したい場合は、リストのメソッドを使用することができます。
エラーを回避するにはどうすればよいですか?
どのLaravelのバージョンをお使いですか?リストの動作は、5.1(ドキュメント内)と5.2間で変更されました。 –
@JoelHinz私の作曲家のファイルには、 "laravel/framework": "5.1。*"、> php artisan --versionが私に与えます Laravel Frameworkバージョン5.1.30(LTS) –