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

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

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

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

作者:佚名點擊: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/

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

多對多查詢時,分頁有時候頁中顯示的條數(shù)不正確,因為有重復(fù)的項,加上$criteria->group = true即可

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

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

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

在布署模式的時候,有錯誤不會有stack樣的提示,會顯示一個errorxxx的錯誤

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


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

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

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

ClistView同上結(jié)合使用,其中的_view中可以用一個$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,
用的時候主要是對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中配置的合并用這個


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


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

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

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

有多個分站時,同步登陸,基本于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,
),
這時候生成的表單要用CHtml::form(),其會寫一段代碼在cookie中


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

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

    相關(guān)評論

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

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

    熱門評論

    最新評論

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

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