PHP 板


LINE

看板 PHP  RSS
今年初忽然想找一个PHP Framework来学习, 选择了Yii下手, 意外的 还算好上手, 最近在开发Mobile Web平台, 看到jQuery Mobile的效果很好 , 决定将两个东西一起使用, 虽然有不少冲突需要花时间解决, 但是整体 效果还不错 ; 当初在这版看到网友[aaroms]分享了Yii的教学, 确实帮到 我不少, 以他的文章继续下去, 分享一些Yii的使用心得 1.多国语言 使用yiic webapp 建立专案後, 可以在protected内看到有资料夹 messages, 在这里面以资料夹做语言的区隔, 例如建立(zhtw),(enus),共 两个资料夹, 接着建立相同名称的php档案分别存放这两个资料夹内, 例如 login.php, 程式内容就是代码对应文字 zhtw/login.php <?php return array( 't_account'=>'帐号', 't_password'=>'密码', 't_required'=>'请勿空白' ); ?> enus/login.php <?php retunr array( 't_account'=>'Account', 't_password'=>'Password', 't_required'=>' Is Required' ); ?> 接着在config/main.php设定网站预设的语言, 使用Yii::app()->language 例如: if(empty($_GET['lang'])){ $lang = 'zhtw'; } else{ $lang = $_GET['lang']; } Yii::app()->language = $lang; 最後利用<?php echo Yii::t('login', "t_account");?> 会根据使用者所选择的语言, 印出[帐号] or [Account] 2.AJAX栏位检查 在protected/models内存放自订的Form Class, 针对要使用的资料栏位 , 可以设定AJAX的检查, 首先宣告会使用到的栏位, 以登入的表格来说明, 例如在 LoginForm.php 中宣告[帐号], [密码]两个变数 public account; public password; 设定变数的检查条件, 这边先以[required 必填]做举例, message则是设定 栏位空白时, 所要显示的错误讯息 public function rules(){ return array( array('account, password,', 'required', 'message'=>'{attribute}'.Yii::t('login', "t_required")), ); } 这边错误讯息使用{attribute}, 会自动判断是哪个变数 (因为有account, password两个以上的变数), 当前端判断[帐号]空白时, 会显示 [account请勿空白], {attribute}只能抓到变数的名称, 所以要另外设定 文字标签来做多国语言的显示 接着是文字标签的设定 public function attributeLabels(){ return array( 'account'=>Yii::t('login', "t_account"), 'password'=>Yii::t('login', "t_password"), ); } 设定完後, 原先的[account请勿空白]中的account就会根据语言做变化, 例如变成[帐号请勿空白] 在protected/controller中设定每个action(动作), 定义Model以及 要显示的View, 例如 public function actionLogIn() { $model = new LoginForm; $this->render('login',array('model'=>$model)); } 最後, 在protected/view/site/login.php, 利用Yii的语法产生form以及 资料栏位, 像是text, password, radio, hidden ....等 <?php $form=$this->beginWidget('CActiveForm', array( 'id'=>'login-form', 'enableClientValidation'=>true, 'clientOptions'=>array( 'validateOnSubmit'=>true, ) )); ?> <?php echo $form->textField($model,'account');?> <?php echo $form->error($model,'account'); ?> <input type="submit" value="submit"> <?php $this->endWidget(); ?> 在按下Submit送出的时候, 就会根据在LoginForm中的设定栏位检查条件 去做检查, 并且透过 echo $form->error($model,'account')将设定好的 错误讯息印出 ---------------------------------------------------------------- LoginForm的栏位检查条件function rules()中, 除了[required必填], 还有 其他一些常用的检查条件 A. 正规表示法 array('account, password', 'match', 'pattern'=>'/^[A-Za-z0-9]{6,12}$/', 'message'=>Yii::t('login', "e_match")), B. 两个栏位资料比对(例如设定密码, 需要 [密码] & [确认密码] ), 需要注意的是, 两个变数的位置 array('password_confirm', 'compare', 'compareAttribute'=>'password', 'message'=>Yii::t('login', "e_pass")), 其它的检查条件可以至yii\framework\validators中查看 先这样.... --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.169.241.218
1F:推 PTTLSboy:感谢分享 04/03 00:41
2F:推 gpmm:推~ 04/03 01:40
3F:推 Bambe:推!! 04/03 13:54
4F:推 miniko70:感谢!最近也对jQuery Mobile有兴趣~欢迎多多分享教学! 04/05 23:53







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP