После входа через Facebook возврат на главную страницу приводит к появлению DBALException.

Я пытаюсь интегрировать FOSUserBundle, SonataUserBundle и HWIOauth Я настроил SonataUserBundle продлить FOSUserBundle,

Используя это руководство в качестве основы, мне удалось настроить интеграцию OAuth: пользователь успешно создан после аутентификации с использованием, в данном случае, учетной записи Facebook.

После аутентификации пользователь автоматически перенаправляется на мою страницу индекса, которая сразу после этого выдает исключение DBALEx

DEBUG - Read SecurityContext from the session 
DEBUG - Reloading user from user provider. 

из-за недопустимой ссылки на таблицу в WHERE пункт:

An exception occurred while executing 'SELECT t1.username AS username2, [more t1 references] FROM fos_user t1 WHERE t0.id = ? LIMIT 1' with params {"1":1}:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 't0.id' in 'where clause'

Я понимаю что t0 ссылка недействительна, потому что она не включена в FROM пункт, но понятия не имею, почему это относится к t0.id вместо t1.id


(надеюсь) Соответствующий Кодекс
Если я правильно понимаю, мой пользовательский объект расширяет Sonata Пользовательский объект, который, в свою очередь, расширяет FOS Пользовательский объект?

Application \ соната \UserBundle\Entity\User.php

<?php

/**
 * This file is part of the <name> project.
 *
 * (c) <yourname> <youremail>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Application\Sonata\UserBundle\Entity;

use Sonata\UserBundle\Entity\BaseUser as BaseUser;

/**
 * This file has been generated by the Sonata EasyExtends bundle ( http://sonata-project.org/bundles/easy-extends )
 *
 * References :
 *   working with object : http://www.doctrine-project.org/projects/orm/2.0/docs/reference/working-with-objects/en
 *
 * @author <yourname> <youremail>
 */
class User extends BaseUser
{
    /**
     * @var integer $id
     */
    protected $id;

    /**
     * Get id
     *
     * @return integer $id
     */
    public function getId()
    {
        return $this->id;
    }
}

Сайты \SiteBundle\Entity\User.php

<?php
namespace Sites\SiteBundle\Entity;

use Application\Sonata\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * @ORM\Entity
 * @ORM\Table(name="fos_user")
 */
class User extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /** @ORM\Column(name="facebook_id", type="string", length=255, nullable=true) */
    private $facebook_id;

    /** @ORM\Column(name="facebook_access_token", type="string", length=255, nullable=true) */
    private $facebook_access_token;

    /** @ORM\Column(name="google_id", type="string", length=255, nullable=true) */
    private $google_id;

    /** @ORM\Column(name="google_access_token", type="string", length=255, nullable=true) */
    private $google_access_token;

    public function __construct()
    {
        parent::__construct();
        // your code here
    }  

соответствующая часть config.yml

fos_user:
    db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
    firewall_name: main
    user_class: Sites\SiteBundle\Entity\User
sonata_user:
    security_acl: false # was true
    manager_type: orm
    class:
        user:         Sites\SiteBundle\Entity\User

0 ответов

Другие вопросы по тегам