.ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録

.検索

.メインメニュー

.フォーラムメニュー

.オンライン状況
12 人のユーザが現在オンラインです。 (11 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 12

もっと...

.
.リンク集

メイン
   CakePHP モデル(Model)
     $_schemaで、DBテーブルを使わずにバリデーション
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
news
投稿日時: 2008-7-26 16:31
Cake 職人
登録日: 2007-4-4
居住地:
投稿: 1277
$_schemaで、DBテーブルを使わずにバリデーション
メールアドレスとメッセージを入れて送信ボタンを押す、というようなコンタクトフォームの場合、DBテーブルが必要でない場合があります。そんなときでもバリデーションをかけたい、という場合には、$_schemaを使えるそうです。久しぶりのJonathanの記事。

Snook.ca
Creating a Contact Form in CakePHP 1.2
http://snook.ca/archives/cakephp/contact_form_cakephp/

ミソは、

<?php
class Contact extends AppModel {
    var 
$useTable false;
    var 
$_schema = array(
        
'name'        =>array('type'=>'string''length'=>100), 
        
'email'        =>array('type'=>'string''length'=>255), 
        
'details'    =>array('type'=>'text')
    );
}
?>


としておくことだそうです。useTableがfalseなので、DBテーブルは使いません。しかし、schemaの定義があります。

こうしておくと、こんなことができてしまうそうです。

<?php
var $validate = array(
    
'name' => array(
        
'rule'=>array('minLength'1), 
        
'message'=>'Name is required' ),
    
'email' => array(
        
'rule'=>'email'
        
'message'=>'Must be a valid email address' ),
    
'feedback' => array(
        
'rule'=>array('minLength'1), 
        
'message'=>'Feedback is required' )
);
?>



スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 


. .