FuelPHPのドキュメントにも例がありますが、FuelPHPのValidationでuniqueチェックを作ってみました。
本家の例ではValidationを拡張する例として記載があります。

http://fuelphp.com/docs/classes/validation/validation.html

 

但し、DBへのInsert時は上記の拡張例で問題ないのですが、Update時は、
更新するレコード自身を含めてしまうとuniqueチェックで引っかかってしまうため、除外する必要があります。
その処理を公式ドキュメントの例を参考にコードを追加してみました。

また、コアクラスを拡張しているため、/fuel/app/bootstrap.phpを編集する必要があります。

 

Autoloader::add_classes(array(
    // ここにオーバーライドしたいクラスを追加します
    // Example: 'View' => APPPATH.'classes/view.php',
    'Validation' => APPPATH.'classes/validation.php',
));

Modelのコード使用例は以下の通りです。

	public static function validate($id=null)
	{
		
		$val = \Validation::forge();
		$val->add_field('group_code', 'グループコード', 'required|min_length[1]|max_length[4]')
			->add_rule('unique', self::$_table_name . '.group_code', $id);

		return $val;
	}

Controllerのコード例は以下の通りです。

■Insert例

	$val = Model_Group::validate();

■Update例

	$val = Model_Group::validate($post->id);

155 Comments

  1. https://www.bakespace.com/members/profile/Сanadian pharmaceuticals for usa sales/1541108/ says:

    Discount viagra https://www.bakespace.com/members/profile/Сanadian pharmaceuticals for usa sales/1541108/

    You actually expressed that terrifically!

  2. Canadian Pharmacies Shipping to USA says:

    best canadian mail order pharmacies https://results.excite.com/serp?q=“My Canadian Pharmacy – Extensive Assortment of Medications – 2022”

    Many thanks, Ample information!

  3. canadian pharmacy cialis says:

    canadian government approved pharmacies https://www.infospace.com/serp?q=“My Canadian Pharmacy – Extensive Assortment of Medications – 2022”

    Seriously tons of fantastic advice.

Leave a Reply