我試圖用一些User對象預先填充數據庫,但是當我調用$user->setPassword('some-password');
並保存用戶對象時,字符串'some-password'直接存儲在數據庫中,而不是哈希+鹽漬密碼。
我DataFixture類:
// Acme/SecurityBundle/DataFixtures/ORM/LoadUserData.php
<?php
namespace Acme\SecurityBundle\DataFixtures\ORM;
use Doctrine\Common\DataFixtures\FixtureInterface;
use Doctrine\Common\Persistence\ObjectManager;
use Acme\SecurityBundle\Entity\User;
class LoadUserData implements FixtureInterface
{
public function load(ObjectManager $manager)
{
$userAdmin = new User();
$userAdmin->setUsername('System');
$userAdmin->setEmail('[email protected]');
$userAdmin->setPassword('test');
$manager->persist($userAdmin);
$manager->flush();
}
}
及相關數據庫輸出:
id username email salt password
1 System [email protected] 3f92m2tqa2kg8cookg84s4sow80880g test
感謝您的UserManager提示! – 2012-02-10 03:25:16
當我嘗試在DB上創建燈具時,我無法調用「this」對象上的「get」方法: PHP致命錯誤:調用未定義的方法[...]/UserFixtures :: get() – JavierIEH 2012-09-04 13:30:57
@JavierIEH你需要在你的fixtures類中實現ContainerAwareInterface和ContainerInterface。請參閱'在燈具中使用容器':https://raw.github.com/doctrine/DoctrineFixturesBundle/master/Resources/doc/index.rst。 Anton Babenko,你可以修改你的答案來表明這一點嗎? – nealio82 2012-09-25 10:28:57