Actionの削除リンクを画像にしたいですよね!
下記のようにします。
//cakephp1.3
<?php echo $this->Html->link($this->Html->image("delete.jpg"), array('action' => 'delete', $users['User']['id']), array('escape'=>false), sprintf(__('Are you sure you want to delete # %s?', true), $users['User']['id']));?>
var $validate = array(
'tel' => array(
'rule'=>array('custom','/\d{2,4}-\d{2,4}-\d{4}/'),
'message'=>'電話番号を入力してください。'
)
);
cakePHPでのバリデーションは便利ですね!
実際の画面にはemailやpasswordなど確認用のフィールドが存在すると思います。
確認用のバリデーションは下記のように設定します。
<?php
class User extends AppModel {
var $name = 'User';
var $validate = array(
'email' => array(
'email' => array(
'rule' => array('email', true),
'message' => 'メールアドレスを正しく入力してください。'
),
'email' => array(
'rule' => 'isUnique',
'message' => 'このメールアドレスはすでに使用されています。'
),
'confirmFields' => array(
'rule' => array('confirmFields', 'email_confirm'),
'message' => 'emailが一致しません',
),
),
'email_confirm' => array(
'email' => array(
'rule' => array('email', true),
'message' => 'メールアドレスを正しく入力してください。'
),
),
'new_password' => array(
'minLength' => array(
'rule' => array('minLength', 8),
'message' => 'パスワードは8文字以上の長さで入力してください。。'
),
'notEmpty' => array(
'rule' => 'notEmpty',
'message' => 'パスワードを入力してください。'
),
'confirmFields' => array(
'rule' => array('confirmFields', 'password_confirm'),
'message' => 'パスワードが一致しません',
),
),
'password_confirm' => array(
'minLength' => array(
'rule' => array('minLength', 8),
'message' => 'パスワードは8文字以上の長さで入力してください。。'
),
'notEmpty' => array(
'rule' => 'notEmpty',
'message' => 'パスワードを入力してください。'
),
),
);
//$data:バリデーション名; $target:フィールド名;
function confirmFields($data, $target) {
$source = '';
if (isset($target)) {
$source = array_shift($data);
}
return $source == $this->data[$this->name][$target];
}
?>