コマンドラインから新しいユーザーを作成しようとすると、次のエラーが発生します。
Warning: array_search() expects parameter 2 to be array, null given
in /vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Model/User.php line 368
Webインターフェースで登録してユーザーを作成しようとすると、次のようになります。
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'salt' cannot be null
既存のユーザーでのログインは機能します。また、プロファイルの更新とパスワードの変更。新しいユーザーを作成するだけでは機能しません。
非常に単純な設定でv 1.3.1を使用していますが、まだ解決策を見つけていません。
何か案は?
修繕!
Userエンティティにカスタムコンストラクターメソッドがありました。そこで、親のコンストラクタをparent::__construct();
で呼び出すのを忘れていました
多分それは誰かを助ける。 bcryptエンコーダーを使用すると、このエラーが表示されます。
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'salt' cannot be null
この問題を解決するには、ユーザークラスにソルト属性のマッピングオーバーライドを追加するだけです(ヌル可能にします)。
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\AttributeOverrides({
* @ORM\AttributeOverride(
* name="salt",
* column=@ORM\Column(name="salt", type="string", nullable=true)
* )
* })
*/
class User extends BaseUser {
...
}
OR:スキーマの更新を忘れないでください。 composer update!の後でエラーが発生した場合!
bin/console doctrine:schema:update --force