【发布时间】:2017-01-09 10:23:45
【问题描述】:
我正在使用带有 CakeDC/Users 插件的 CakePHP,我想存储的不仅仅是注册时的标准用户详细信息。我以为我在这里找到了答案:https://github.com/CakeDC/users/blob/master/Docs/Documentation/Extending-the-Plugin.md#extending-the-model-tableentity,但这对我来说已经没有意义了。
我按照文档中的建议将其设置为站点:
- 我的新表名为 site_users,我包含了所有标准的“用户”表字段以及我需要的其他字段。
- 我创建了新的模型/表和模型/实体类
- 我创建了一个新的 register.ctp 模板
...但在注册时,它仍在尝试更改标准 users 表,而不是我的新 site_users 表。
这是新的实体文件,其中包括 site_users 表中的字段列表:
namespace App\Model\Entity;
use CakeDC\Users\Model\Entity\User;
/**
* SiteUser Entity
*
* @property int $id
* @property string $first_name
* @property string $last_name
* @property string $email
* @property string $company
* @property string $abn
* @property string $ngr
* @property \Cake\I18n\Time $date_registered
* @property string $street_address
* @property string $suburb
* @property string $region
* @property string $state
* @property string $postcode
* @property string $mobile
* @property string $landline
* @property string $fax
* @property string $username
* @property string $password
* @property string $receive_marketing
* @property string $ngr_confirmed
* @property int $site_user_group_id
* @property string $token
* @property \Cake\I18n\Time $token_expires
* @property string $api_token
* @property \Cake\I18n\Time $activation_date
* @property \Cake\I18n\Time $tos_date
* @property bool $active
* @property bool $is_superuser
* @property string $role
* @property \Cake\I18n\Time $created
* @property \Cake\I18n\Time $modified
*
* @property \App\Model\Entity\SiteUserGroup $site_user_group
*/
class SiteUser extends User
{
protected $_accessible = [
'*' => true,
'id' => false,
'role' => false,
];
}
这是新的表格文件:
namespace App\Model\Table;
use CakeDC\Users\Model\Table\UsersTable;
class SiteUsersTable extends UsersTable
{
}
bootstrap.php 包含以下几行:
Configure::write('Users.config', ['users']);
Plugin::load('CakeDC/Users', ['routes' => true, 'bootstrap' => true]);
users.php 有这个:
return [
'Users.table' => 'SiteUsers',
];
我觉得我只是不理解这一点,但它似乎应该是一个足够普遍的请求,至少会有一个像样的例子。
谁能告诉我为什么我所做的更改没有达到我预期的效果(site_users 表将由插件更新),或者我需要做什么才能以其他方式实现这一目标?
非常感谢
【问题讨论】: