Silex でこのコードに問題があります。私は小さなウェブカートをプログラミングしていますが、Silex でセッション オブジェクトがどのように機能するかわかりません。これは私のコードであり、常に次のように終了します。
致命的なエラー: 関数名は文字列セッションでなければなりません
この行で:
$amount = $app['calculate_amount']($app['session']->get('cart'));
$items = $app['calculate_items']($app['session']->get('cart'));
何か案は?
ありがとう!
乾杯!
$app['calculate_amount'] = function ($cart) use ($app) {
$amount = 0.00;
$sql = "SELECT * FROM products WHERE id = ?";
if(is_array($cart))
{
foreach($cart as $id => $qty)
{
$product = $app['db']->fetchAssoc($sql, array($id));
$amount += $product["price"]*$qty;
}
}
return $amount;
};
$app['calculate_items'] = function ($cart) {
$items = 0;
if(is_array($cart))
{
foreach($cart as $id => $qty)
{
$items += $qty;
}
}
return $items;
};
$app->before(function (Request $request) use ($app) {
if ($request->get('save') != NULL)
{
foreach ($app['session']->get('cart') as $id_isbn => $qty)
{
if ($request->get('$id_isbn')=='0')
{
$app['session']->set('cart', array('$id_isbn' => NULL));
}
else
{
$app['session']->set('cart', array('$id_isbn' => $request->get('$id_isbn')));
}
}
$amount = $app['calculate_amount']($app['session']->get('cart'));
$items = $app['calculate_items']($app['session']->get('cart'));
$app['session']->set('amount', $amount);
$app['session']->set('items', $items);
}
});