2014年4月28日 星期一

yii framework - 如何多個Controller共用一個filter?

我們都知道Yii可以跨Controller使用function (ex: UserController::ShowHallo), 但是很多時候我們會希望一個過濾器(filter)能讓許多的Controller共用.

因為我們不用再重複寫一樣的cord, 是吧! 正如《Clean Code》的Bob大叔說的:不要重複自己DRY (Don't Repeat Yourself)

步驟:
1. 在protected/下建立一個資料夾 (ex: filers)

2. 在protected/filers下建立一個檔案 (ex: ShowHalloFilter.php)

3. 幫你的filter寫點東西

4. 在要使用的Controller裡的filers用array ('application.filters.ShowHalloFilter + aboutMe, fuckYou')的方式來使用我們建立的filter


2014年4月21日 星期一

yii framework - 為什麼Facebook登出會轉到home.php

問題:

為什麼在登出fb的時候沒有轉到自己所指定的頁面, 而是跑到Facebook的home.php?


可能的原因:

1. 你的登出後要轉到(next)的網址錯誤, 例如:

$params = array( 'next' => 'http://www.test.com/index.html' );
$logout_url = Yii::app()->facebook->getLogoutUrl($params);

如果你是index.php, 而不是index.html的話就會發生這個現象!

2. 你沒有拿到正確的access token

其實檢查方式很簡單, 你可以把上面的$logout_url echo出來, 就可以知道到底getLogoutUrl()這個函式到底都產生了什麼鬼.