2016-12-23 4 views
3

Он работал некоторое время назад, но теперь по какой-то причине он производит исключение. У меня есть настраиваемый объект пользователя и расширяет FOS пользователя:Столбец «соль» не может быть нулевым для пользователя FOS create

namespace AppBundle\Entity; 

use FOS\UserBundle\Model\User as BaseUser; 
use Doctrine\ORM\Mapping as ORM; 

/** 
* @ORM\Entity(repositoryClass="AppBundle\Repository\UserRepository") 
* @ORM\Table(name="fos_user") 
*/ 
class User extends BaseUser 
{ 
... 
} 

Там нет setSalt() в моем пользовательском классе. И, как я вижу, в SQL-запросах сбрасываются другие нестандартные поля (email_canonical, enabled, password, ...). Что еще я мог проверить?

UPDATE

Я сделал обновление композитор. Вот мой композитор.json

"require": { 
    "php": ">=5.5.9", 
    "symfony/symfony": "3.2.*", 
    "doctrine/orm": "^2.5", 
    "doctrine/doctrine-bundle": "^1.6", 
    "doctrine/doctrine-cache-bundle": "^1.2", 
    "symfony/swiftmailer-bundle": "^2.3", 
    "symfony/monolog-bundle": "^2.8", 
    "symfony/polyfill-apcu": "^1.0", 
    "sensio/distribution-bundle": "^5.0", 
    "sensio/framework-extra-bundle": "^3.0.2", 
    "incenteev/composer-parameter-handler": "^2.0", 
    "friendsofsymfony/user-bundle": "[email protected]", 
    "hwi/oauth-bundle": "^0.5.1", 
    "twig/extensions": "^1.4" 
}, 
+0

Вы обновили FOSUserBundle? В последних версиях есть БК. – Veve

+0

Возможно, это и есть причина. Я обновил вопрос. Является ли моя версия для подключения пользователей несовместимой с версией Symfony? – dMedia

+0

Можете ли вы показать нам свой конструктор пользователя? – Veve

ответ

7

Вы должны отказаться от своей схемы и снова ее воссоздать. Ваш столбец солей должен быть пустым, потому что при использовании алгоритма bcryp оно действительно равно нулю, как the salt is directly included in the password (hash). Кроме того здесь мэппингов:

<field name="salt" column="salt" type="string" nullable="true" /> 

PS: И другие советы, обновляет все сверток, очистить кэш, базу данных и ее данные ...


UPDATE:

пер dMedia, они изменили отображение доктрины в недавнем обновлении (ноябрь 2016 г.)

https://github.com/FriendsOfSymfony/FOSUserBundle/commit/a9a08c2daf3db38697a8bd4b6e00f42c9a33dd79#diff-36e2e6fca6f6ce7118933033f9ce8bff

+2

Действительно. Они изменили отображение доктрины https://github.com/FriendsOfSymfony/FOSUserBundle/commit/a9a08c2daf3db38697a8bd4b6e00f42c9a33dd79#diff-36e2e6fca6f6ce7118933033f9ce8bff. 'php bin/console doctrine: schema: update --force' выполнил эту работу. – dMedia

 Смежные вопросы

  • Нет связанных вопросов^_^