[CakePHP3.x]buildRules()メソッドでもエラーメッセージが出せる

belogsToとかの存在チェックのバリデーションを書くと思いますが、実はbuildRules()のところでもできちゃいます。
何もしないと、存在しないIDを保存しようとすると

This value does not exist

という感じで出てくると思いますが、以下のようにするとメッセージの変更ができます。

public function buildRules(RulesChecker $rules)
{
    $rules->add($rules->existsIn(['user_id'], 'Users' , ['message' => 'ユーザーがみつかりませんでした']));
    return $rules;
}

ただ、特殊な条件の時にカスタムしにくいのでここでやるのは微妙なところではあります。

タイトルとURLをコピーしました