Đây là mã để ghi đè tác vụ. Về cơ bản chỉ cần sao chép một phần của hành động FOS thực tế và modded.
Tạo tệp RegistrationController.php trong thư mục bộ điều khiển của gói người dùng của bạn và đặt lớp RegistrationController ghi đè trong đó.
Giả bó người dùng của bạn là Acme \ UserBundle:
<?php
// Acme\UserBundle\RegistrationController.php
namespace Acme\UserBundle\Controller;
use Symfony\Component\HttpFoundation\RedirectResponse;
use FOS\UserBundle\Controller\RegistrationController as BaseController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class RegistrationController extends BaseController
{
/**
* Receive the confirmation token from user email provider, login the user
*/
public function confirmAction(Request $request, $token)
{
$userManager = $this->container->get('fos_user.user_manager');
$user = $userManager->findUserByConfirmationToken($token);
if (null === $user) {
/* ************************************
*
* User with token not found. Do whatever you want here
*
* e.g. redirect to login:
*
* return new RedirectResponse($this->container->get('router')->generate('fos_user_security_login'));
*
**************************************/
}
else{
// Token found. Letting the FOSUserBundle's action handle the confirmation
return parent::confirmAction($request, $token);
}
}
}
Có vấn đề này cùng và tìm kiếm một giải pháp. Không có phạm vi cho người dùng câm người nhấp đúp vào tất cả mọi thứ !! – gezpage
Nó phải được xử lý, nhưng nó không phải. Điều tương tự khi nhấp đúp vào đặt lại liên kết mật khẩu, sau khi khoảng thời gian yêu cầu mật khẩu hết hạn. Điều duy nhất mà làm việc cho tôi là 'ghi đè' định tuyến để fosuser: xác nhận hành động để nó tuyến đường đến hành động tôi đã viết. Phần ghi đè cơ bản của trình kiểm soát gói người dùng fos. Trong hành động của tôi, tôi kiểm tra hash xác nhận, nếu tồn tại tôi chuyển tiếp đến fosuserbundle: đăng ký: xác nhận. Nếu không - tôi lặp lại một số tin nhắn. Tôi có thể cung cấp một số mã sau. – tiriana