0
注文からデータベースへのアイテムの永続化をブロックしてから数日が経ちました。セッション中の配列ストアを維持symfony
セッション中の在庫記事が配列であり、配列を永続化する方法がわかりません。配列をオブジェクトに変換しようとしましたが、できません。これは私のサービスです。
public function addArticle($id)
{
$sessionCart = $this->session;
$article = $this->doctrine->getRepository('AppBundle:Article')->find($id);
$cart = $sessionCart->get('cart');
$cart[] = $article;
$sessionCart->set('cart', $cart);
// use later for delivery
$sessionCart->get('commande');
return $sessionCart;
}
public function panier()
{
$articles = $this->session->get('cart');
return $articles;
}
public function delivery(Request $request)
{
$commande = new Commande();
$articles = $this->session->get('cart');
$form = $this->form->create(CommandeType::class, $commande);
if ($request->isMethod('POST') && $form->handleRequest($request)->isValid())
{
$data = $form->getData();
$this->session->set('commande', $data);
$response = new RedirectResponse('payment');
$response->send();
}
return [$form, $articles];
}
public function payment(Request $request)
{
$articles = $this->session->get('cart');
$commande = $this->session->get('commande');
if ($request->isMethod('POST')) {
$em = $this->doctrine;
$em->persist($articles);
$em->persist($commande);
$em->flush();
}
return[$articles, $commande];
}
エラー: "のEntityManager#が(持続)は、パラメータ1が指定されたエンティティオブジェクト、配列であることを期待しています。"
注文は保存されますが、アイテムは保存されません。
おかげ
はい$カートのdoctrineCollectionを使用するには、リストを含む配列であります注文商品のforeachでは動作しません。 – chk35
記事が教義の実体であればそれはうまくいくはずです。エラーメッセージは何ですか?あなたがforeachの最初の行に 'var_dump($ article);'を書かれているとどうなっていますか? doctrineEntityが見えますか? – fxlacroix
私はvar_dumpを実行しても何も表示されませんが、私はまだsymfonyのエラーがあります:EntityManager#persist()は、パラメータ1が与えられた配列のエンティティオブジェクトになることを期待しています。 – chk35