CakePHP2系のノリで
$this->Form->create('modelname');
$this->Form->input('field', ['type' => 'text']);
$this->Form->end();
という感じのフォームを作ったがバリデーションによるエラーが出なかったのでその原因と対策。

createの違い

結論からいうと$this->Form->create()の第一引数にモデル名を渡していたのが原因。
CakePHP3系ではここにはentityをセットしてやる必要がある。
ControllerからEntityを渡して
$this->Form->create($entity);
$this->Form->input('field', ['type' => 'text']);
$this->Form->end();
これで解決。