プラグインをオーバーライドすると、プラグインを変更せずにすみます。
参考:Extending the Plugin
上記の参考リンクはCakeDCによる説明です。その説明では違うテーブル名を利用する方法が書かれていますが、それを応用します。
基本的にはプラグインの処理を使いますが、バリデーションの部分だけオーバーライドして、自分で設定した処理をすることにします。
以下にコードを示します。
src/Model/Entity/User.php
PHP
1namespace App\Model\Entity;
2
3use CakeDC\Users\Model\Entity\User as UserParent;
4
5// プラグインのファイルからコピペ
6use Cake\Core\Configure;
7use Cake\I18n\Time;
8use Cake\ORM\Entity;
9use Cake\Utility\Text;
10use DateTime;
11
12class User extends UserParent
13{
14}
15
src/Model/Table/UsersTable.php
PHP
1namespace App\Model\Table;
2
3use CakeDC\Users\Model\Table\UsersTable as UsersTableParent;
4
5// プラグインのファイルからコピペ
6use Cake\ORM\Query;
7use Cake\ORM\RulesChecker;
8use Cake\ORM\Table;
9use Cake\Utility\Hash;
10use Cake\Validation\Validator;
11
12class UsersTable extends UsersTableParent
13{
14
15 public function validationDefault(Validator $validator)
16 {
17 // 必要に応じて
18 $validator = parent::validationDefault($validator);
19
20 // バリデーションの例
21 $validator
22 ->lengthBetween('password', [10, 15]);
23
24 return $validator;
25
26 }
27
28}
29
config/bootstrap.php
PHP
1// 既に設定済みだと思いますが念のため
2Configure::write('Users.config', ['users']);
3Plugin::load('CakeDC/Users', ['routes' => true, 'bootstrap' => true]);
config/users.php
PHP
1return [
2 // デフォルト値は'CakeDC/Users.Users'
3 'Users.table' => 'Users',
4];
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/10 09:19