本文整理汇总了PHP中Eccube\Application::setLoginTargetPath方法的典型用法代码示例。如果您正苦于以下问题:PHP Application::setLoginTargetPath方法的具体用法?PHP Application::setLoginTargetPath怎么用?PHP Application::setLoginTargetPath使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Eccube\Application
的用法示例。
在下文中一共展示了Application::setLoginTargetPath方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: detail
public function detail(Application $app, Request $request, $id)
{
$BaseInfo = $app['eccube.repository.base_info']->get();
if ($BaseInfo->getNostockHidden() === Constant::ENABLED) {
$app['orm.em']->getFilters()->enable('nostock_hidden');
}
/* @var $Product \Eccube\Entity\Product */
$Product = $app['eccube.repository.product']->get($id);
if (!$request->getSession()->has('_security_admin') && $Product->getStatus()->getId() !== 1) {
throw new NotFoundHttpException();
}
if (count($Product->getProductClasses()) < 1) {
throw new NotFoundHttpException();
}
/* @var $builder \Symfony\Component\Form\FormBuilderInterface */
$builder = $app['form.factory']->createNamedBuilder('', 'add_cart', null, array('product' => $Product, 'id_add_product_id' => false));
/* @var $form \Symfony\Component\Form\FormInterface */
$form = $builder->getForm();
if ($request->getMethod() === 'POST') {
$form->handleRequest($request);
if ($form->isValid()) {
$addCartData = $form->getData();
if ($addCartData['mode'] === 'add_favorite') {
if ($app->isGranted('ROLE_USER')) {
$Customer = $app->user();
$app['eccube.repository.customer_favorite_product']->addFavorite($Customer, $Product);
$app['session']->getFlashBag()->set('product_detail.just_added_favorite', $Product->getId());
return $app->redirect($app->url('product_detail', array('id' => $Product->getId())));
} else {
// 非会員の場合、ログイン画面を表示
// ログイン後の画面遷移先を設定
$app->setLoginTargetPath($app->url('product_detail', array('id' => $Product->getId())));
$app['session']->getFlashBag()->set('eccube.add.favorite', true);
return $app->redirect($app->url('mypage_login'));
}
} else {
try {
$app['eccube.service.cart']->addProduct($addCartData['product_class_id'], $addCartData['quantity'])->save();
} catch (CartException $e) {
$app->addRequestError($e->getMessage());
}
return $app->redirect($app->url('cart'));
}
}
} else {
$addFavorite = $app['session']->getFlashBag()->get('eccube.add.favorite');
if (!empty($addFavorite)) {
// お気に入り登録時にログインされていない場合、ログイン後にお気に入り追加処理を行う
if ($app->isGranted('ROLE_USER')) {
$Customer = $app->user();
$app['eccube.repository.customer_favorite_product']->addFavorite($Customer, $Product);
$app['session']->getFlashBag()->set('product_detail.just_added_favorite', $Product->getId());
}
}
}
$is_favorite = false;
if ($app->isGranted('ROLE_USER')) {
$Customer = $app->user();
$is_favorite = $app['eccube.repository.customer_favorite_product']->isFavorite($Customer, $Product);
}
return $app->render('Product/detail.twig', array('title' => $this->title, 'subtitle' => $Product->getName(), 'form' => $form->createView(), 'Product' => $Product, 'is_favorite' => $is_favorite));
}