1
我已經修改ZfcUser我模塊(Module.php)兩個新領域的「名字」和「姓氏」像這樣在註冊表單的用戶對象:ZfcUser - 如何修改
public function onBootstrap($e)
{
$events = $e->getApplication()->getEventManager()->getSharedManager();
$zfcServiceEvents = $e->getApplication()->getServiceManager()->get('zfcuser_user_service')->getEventManager();
$events->attach('ZfcUser\Form\Register', 'init', function($e) {
$form = $e->getTarget();
$form->add(array(
'name' => 'firstname',
'type' => 'Text',
'options' => array(
'label' => 'First name: ',
),
));
$form->add(array(
'name' => 'lastname',
'type' => 'Text',
'options' => array(
'label' => 'Last name: ',
),
));
});
$events->attach('ZfcUser\Form\RegisterFilter', 'init', function($e) {
$filter = $e->getTarget();
$filter->add(array(
'name' => 'firstname',
'required' => true,
'validators' => array(
array(
'name' => 'StringLength',
'options' => array(
'min' => 3,
'max' => 255,
),
),
),
));
$filter->add(array(
'name' => 'lastname',
'required' => true,
'validators' => array(
array(
'name' => 'StringLength',
'options' => array(
'min' => 3,
'max' => 255,
),
),
),
));
});
$zfcServiceEvents->attach('register', function($e) {
$user = $e->getParam('user'); // User account object
$form = $e->getParam('form'); // Form object
//var_dump($form->get('firstname')->getValue()); die;
//var_dump($user); die;
});
$zfcServiceEvents->attach('register.post', function($e) {
$user = $e->getParam('user');
});
}
登記表看起來確定。我可以看到其他字段和驗證工作正常。 問題是,我不能在用戶對象設置這兩個新領域:
$user->setFirstname($form->get('firstname')->getValue());
它說這個屬性不存在。 你能解釋我做錯了嗎?
好。配置''enable_default_entities'=> false'非常重要;它跳過了默認用戶表的生成。 – kabirbaidhya