foundation5とCakephpで作るAjaxメールフォーム Model編

AjaxメールフォームのModel

データベースにテーブルを新設する

メールフォームから送信された問い合わせ内容を保存するテーブルを定義します。

foundation5とCakephpで作るAjaxメールフォーム 準備編の続きになります。全体像は以下の構成になっていて、本エントリーはModel編です。

以下テーブルを定義するSQLです。

CREATE TABLE IF NOT EXISTS `contacts` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
  `email` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
  `option` int(3) NOT NULL,
  `body` text COLLATE utf8_unicode_ci NOT NULL,
  `ip_address` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
  `created` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

Modelの定義

contactsテーブルを新設しましたので、CakephpにContactモデルを定義します。validationを扱えるAjaxメールフォームとするためモデルにvalidateを定義しています。

以下の内容で、

app\Model\Contact.php

として保存します。

<?php
class Contact extends AppModel {
	public $name = 'Contact';
	
	public $validate = array(
		'title' => array(
	        'notEmpty' => array(
	            'rule' => 'notEmpty',
	            'message' => '件名を記入してください。',
	            'last' => true
	         ),
			'maxLength' => array(
				'rule' => array('maxLength', '50'),
	            'message' => '件名は50文字以内で入力してください。'
			),
		),
	    	'option'=>array(
	      	'rule' => 'notEmpty',
	      	'message'=>'問い合わせの種類を選択してください。'
    	),
		'email' => array(
	        'notEmpty' => array(
	            'rule' => 'notEmpty',
	            'message' => 'メールアドレスを記入してください。',
	            'last' => true
	         ),
			'maxLength' => array(
				'rule' => array('maxLength', '5000'),
	            'message' => 'メールアドレスは500文字以内で入力してください。'
			),
			'isValid' => array(
				'rule' => 'email',
				'required' => true,
				'message' => '有効なメールアドレスを記入してください。'
			),
		),
		'body' => array(
	        'notEmpty' => array(
	            'rule' => 'notEmpty',
	            'message' => '本文を記入してください。',
	            'last' => true
	         ),
			'maxLength' => array(
				'rule' => array('maxLength', '3000'),
	            'message' => '本文は3000文字以内で入力してください。'
			),
		),
	);
}
?>

バリデートするのは、title, option, email, そして問い合わせ本文となるbodyの4つとしました。

Model編は以上です。Controller編に続く

Webエンジニアブログにコメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

foundation5とCakephpで作るAjaxメールフォーム Model編の記事にコメントを投稿