西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)其它知識 → 從yii權(quán)威指南中學(xué)到的

從yii權(quán)威指南中學(xué)到的

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:本站整理時(shí)間:2010/8/9 0:13:14字體大。A-A+

作者:佚名點(diǎn)擊:5645次評論:0次標(biāo)簽: 權(quán)威

  • 類型:電子資料大。171KB語言:中文 評分:10.0
  • 標(biāo)簽:
立即下載
6 頁 如何獲得上一頁的url以返回

Yii::app()->request->urlReferrer;

 

accessControl 是Ccontroller中內(nèi)置的過濾方法,其它的還有ajaxOnly postOnly

CMaskedTextField此組件用于限制用戶的輸入,對應(yīng)的jquery插件http://digitalbush.com/projects/masked-input-plugin/

在一對多,多對多查詢時(shí),the eager loading 聯(lián)合所有的表生成一條語句,如果主表有l(wèi)imit的查詢選項(xiàng),那么他將單獨(dú)執(zhí)行,然后再執(zhí)行與關(guān)聯(lián)表有關(guān)的語句,返回相關(guān)表的數(shù)據(jù)對象,這就是為什么在做大優(yōu)惠時(shí),以中間表為查詢條件出錯(cuò)的原因,解決辦法
with()返回 CActiveFinder對象,其方法together(),既使主表中有LIMIT/OFFSET 也是返回一條sql;

多對多查詢時(shí),分頁有時(shí)候頁中顯示的條數(shù)不正確,因?yàn)橛兄貜?fù)的項(xiàng),加上$criteria->group = true即可

模型的rules中,驗(yàn)證某個(gè)字段不能重復(fù),array('name', 'unique','message' => '有重復(fù)的名子'),

CStatePersister是yii的核心組件,提供了基于文件的數(shù)據(jù)保存方式,可以不在同的請求中使用

COutputCache 即是一個(gè)組件,又是一個(gè)filter,前者的時(shí)候用于在view中緩存內(nèi)容,后者的時(shí)候用于在controller中緩存
就是說片段緩存,是把COutputCache當(dāng)一個(gè)widget來用,頁面緩存把COutputCache當(dāng)作一個(gè)filter來用
動態(tài)緩存,用CController的一個(gè)方法 renderDynamic($callback);

在布署模式的時(shí)候,有錯(cuò)誤不會有stack樣的提示,會顯示一個(gè)errorxxx的錯(cuò)誤

如何在程序有錯(cuò)的時(shí)候跳到指定的action
在components中設(shè)置
'errorHandler'=>array(
'errorAction'=>'site/error',
),
在此action中可以能過Yii::app()->errorHandler->error獲得錯(cuò)誤信息


把字符串分解成數(shù)組,并去掉空值
preg_split('/\s*,\s*/','this , is , , a test',-1,PREG_SPLIT_NO_EMPTY )

CActiveRecord::exits();判斷有沒有這樣的記錄,一般用于添加時(shí),判斷某字段有沒有重復(fù)

CActiveDataProvider 一個(gè)基于ActiveRecord的數(shù)據(jù)提供源
常用的用法
$dataProvider=new CActiveDataProvider('Post', array(
'criteria'=>array(),
'pagination'=>array(),
'sort'=>array(),
));

ClistView同上結(jié)合使用,其中的_view中可以用一個(gè)$data的變量,代表當(dāng)前的model數(shù)據(jù)
如果dataProvider中的pagination,sort設(shè)為false,則CliveView中對應(yīng)的部分也無法使用
$this->widget('zii.widgets.ClistView',array(
'dataProvider' => $dataprovider,
'itemView' => '_view',
'template' => '{items}{sorter}{pager}',
'sortableAttributes' => array(
),
));

CGridView的使用也結(jié)合$dataprovider,
用的時(shí)候主要是對columns的配置,主要有
CDataColumn, CLinkColumn, CButtonColumn and CCheckBoxColumn.具體用法看api
總的說來CgridView沒有ClistView靈活

插入meta信息
Yii::app()->clientScript->registerMetaTag('keywords','關(guān)鍵字');
Yii::app()->clientScript->registerMetaTag('description','一些描述');

CMap::mergeArray() 比array_merge更智能的合并數(shù)組,yii中配置的合并用這個(gè)


CClipWidget 通過ob_start ob_getconent生成一段不顯示的內(nèi)容,可以能過CController::clips訪問,如
$this->beginWidget('CClipWidget',array('id'=>'name','renderClip'=>true));
可以通過$this->clips['name']來顯示,其中的renderClip如果為false,則在當(dāng)前位置不顯示內(nèi)容


如果在Model一次驗(yàn)證多個(gè)屬于,顯示不同的內(nèi)容?如下 [后來發(fā)現(xiàn)這個(gè)不起作有]
return array(
array('title, content', 'required',
'message'=>'Please enter a value for {attribute}.'),
// ... other rules
);


獲得服務(wù)器時(shí)間
$_SERVER['REQUEST_TIME']

維護(hù)程序時(shí),這樣子所有的請求轉(zhuǎn)發(fā)到一個(gè)地方
'catchAllRequest'=>array('site/all'),

根據(jù)二級域名緩存
array(
'COutputCache + search',
'duration' => 120,
'varyByParam' => array('q','page'),
'varyByExpression' => "app()->request->hostInfo",
),

有多個(gè)分站時(shí),同步登陸,基本于cookie
'user'=>array(
'identityCookie'=>array('domain'=>'.dayouhui.com'),
'allowAutoLogin' => true,
)
如果是基本于session

'session' => array(
'cookieParams' => array('domain' => '.dayouhui', 'lifetime' => 0),
'timeout' => 3600,
),

如何使用theme
在main.php中配置
'theme'=>'classic',
如何得到前前使用的主題
Yii::app()->theme
得到名子
Yii::app()->theme->name;


如果防止post跨站攻擊
'request'=>array(
'enableCsrfValidation'=>true,
),
這時(shí)候生成的表單要用CHtml::form(),其會寫一段代碼在cookie中


如何讓表單驗(yàn)證不駝過的提示為中文
在main.php的配置中加上
'language' => 'zh_CN',

如何實(shí)現(xiàn)仿google的自動完成功能

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)