こんにちわ、masumasuです。
柔らかな春風に花の香りが漂う頃となりました。 皆様はいかがお過ごしでしょうか。
今回は、モデルを使わないフォームについて書いていきます。
通常のFormであれば、Modelと紐づいている必要がありますが、Modelを使用したくない機能を実装するために使われています。
主に、検索フォームで使われることが多いです。
例としては、下記のように記述します。
<?php
namespace App\Form;
use Cake\Form\Form;
use Cake\Form\Schema;
use Cake\Validation\Validator;
class UserSearchForm extends Form
{
/**
* スキーマを生成
*
* @param \Cake\Form\Schema $schema The schema to customize.
* @return \Cake\Form\Schema The schema to use.
*/
protected function _buildSchema(Schema $schema): Schema
{
return $schema;
}
/**
* バリデーション
*
* @param \Cake\Validation\Validator $validator バリデータ
* @return \Cake\Validation\Validator
*/
public function validationDefault(Validator $validator): Validator
{
}
/**
* 実行
*
* @param array $data データ
* @return bool
*/
protected function _execute(array $data): bool
{
return true;
}
}
Controllerに下記のように記述します。
$userSearchForm = new UserSearchForm();
if($articleSearchForm->execute($this->getRequest()->getQuery())){
// 正常
}else{
// バリデーションエラー
}
$this->set(compact('userSearchForm'));
まとめ
モデルを使わないにフォームについて書きました。
ご覧いただきありがとうございました。