2013-01-11 22 views
46

Tôi cố gắng để tạo một người dùng mới từ dòng lệnh và nhận được lỗi này:Tạo một người dùng mới với FOSUserBundle không

Warning: array_search() expects parameter 2 to be array, null given 
in /vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Model/User.php line 368 

Khi cố gắng để tạo ra một người sử dụng bằng cách đăng ký qua webinterface tôi có được điều này:

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'salt' cannot be null 

Đăng nhập bằng người dùng hiện có đang hoạt động. Đồng thời cập nhật hồ sơ và thay đổi mật khẩu. Chỉ cần tạo người dùng mới không hoạt động.

Tôi đang sử dụng phiên bản 1.3.1 trong một thiết lập rất đơn giản và chưa tìm thấy bất kỳ giải pháp nào.

Bất kỳ ý tưởng nào?

Trả lời

143

Đã sửa lỗi!

Tôi có phương thức hàm tạo tùy chỉnh trong thực thể Người dùng của mình. Ở đó tôi đã quên gọi cho nhà xây dựng của cha mẹ với parent::__construct();

5

Có thể nó giúp ai đó. Bạn có thể thấy lỗi này khi sử dụng bộ mã hóa bcrypt.

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'salt' cannot be null 

Để giải quyết vấn đề này chỉ cần thêm bản đồ ghi đè cho thuộc tính muối trong lớp tài khoản của bạn (làm cho nó nullable)

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

/** 
* @ORM\Entity 
* @ORM\AttributeOverrides({ 
* @ORM\AttributeOverride(
*  name="salt", 
*  [email protected]\Column(name="salt", type="string", nullable=true) 
*  ) 
* }) 
*/ 
class User extends BaseUser { 
    ... 
} 

OR: đừng quên cập nhật giản đồ của bạn. Nếu lỗi xảy ra sau khi cập nhật soạn nhạc!

bin/console doctrine:schema:update --force 
Các vấn đề liên quan