我正在使用CakePHP和CakeDC/Users插件,並且我希望在註冊時不僅存儲標準用戶詳細信息。我想我已經在這裏得到了答案:https://github.com/CakeDC/users/blob/master/Docs/Documentation/Extending-the-Plugin.md#extending-the-model-tableentity,但是這樣對我來說已經沒有意義了。如何使用自定義表格而不是標準的CakeDC/Users表格?
我設置的網站,如文檔中建議:
- 我的新表名是site_users和我包括所有標準的「用戶」表中的字段,與我所需要的附加字段一起。
- 我創造了新的型號/表和型號/實體類
- 我創建了一個新的register.ctp模板
...但登記的,仍試圖進行更改標準用戶表,而不是我的新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表將由插件更新),還是我需要做的以另一種方式實現此目的?
非常感謝
但是,感謝您的支持,我最初的網站設置與您(和文檔)描述的一樣,並且改變了這些命令的順序以反映我發現的類似示例。插件嘗試更新哪個表格也沒有任何影響。 –