codeigniter-validation

Validation

使いまわすな?

事象

class Unchi extends BaseController
{
	public function index()
	{
		if($this->validate(['unchi' => 'required',])){
		.
		.
		.
		}
	}
}

-----別ファイル-----------
class BuriUnchi extends BaseController
{
	public function index()
	{
		if($this->validate(['unchibu' => 'required',])){
		.
		.
		.
		}
	}
}

こんな感じでいろいろ書いて行くと挙動がおかしくなる。

具体的に遭遇したケースは

featureテスト時に

別クラスのバリデーションルールが追加された状態

かつ

validationはパラメタガン無視(パラメタは取得できていた)する事象。

解決策

public function __construct()
{
    $validation =  \Config\Services::validation();
    $validation->reset();
}
public function index()
{

	if($this->validate(['buri' => 'required',])){
	.
	.
	.
	}
}

reset挟んだらうまくいった。

正直codeigniter4のvalidation全く理解してない。

公式以外でもっとわかりやすいドキュメントとかないのだろうか。