メール履歴テーブルのカラムを別のプラグインから追加したい

標準プラグインのmailプラグインを拡張するプラグインを作成しています。

内部を拝見したところメール履歴はメールページごとにテーブルが個別で作成されておりモデルに用意されている「addMessageField」から追加すればカラムが追加できると考えましたが、追加はされますがエラーが出て上手く処理が出来ません…回答頂けると大変助かります。

↓エラー
Argument 1 passed to BcUploadBehavior::setup() must be an instance of Model, bool given, called in 〇〇\lib\Cake\Model\BehaviorCollection.php on line 145

//追加した処理 BcControllerEventListener継承
public function mailMailinitialize(CakeEvent $event) {
    $Controller = $event->subject();
    $ret = $Controller->MailMessage->addMessageField(
				1,
				"test"
		);
}
//MailMessage.php
public function addMessageField($mailContentId, $field)
{
		$table = $this->createTableName($mailContentId);
		$options = ['field' => $field, 'column' => ['type' => 'text'], 'table' => $table];
		return parent::addField($options);
}

baserCMS4を前提に話します。

エラー内容からみるにおそらくデータ保存前にMailMassageにて設定されているBcUploadBehaviorの必要な設定がたりてないのではないかと思います。

具体的にはMailMessage::setup() にて実行される setupUploadメソッドの実行が必要です。
これはメールプラグインがフォームからファイルを受信するために必要なBehaviorとなります。

「いいね!」 1

@gondoh
ありがとうございます!おかげさまで解決しました。
CakeEventから呼び出すのが良くないようで、直接インスタンス生成してから呼び出せば対応できました。