Tuesday, March 9, 2010

php header cannot be rewrite

我用php的header()函式來轉換網頁,
之後就出現
Cannot modify header information - headers already sent by
這串文字,
我看書上寫是因 為沒加session_start的標檔,
加上去後也還是一樣的情況,
在網路上找到一些方法,
有人說"header函式前不能有 任何輸出
"而且"BOM"也可能是原因之一,
後來我發現這個方法也不行,
後來在別人 的BLOG找到,
http://jmizl.pixnet.net/blog/post/13747457
Step1. 開啟 PHP 資料夾內的 php.ini 檔。
Step2. 找到『output_buffering』這行,將預設的『Off』改為『On』,並重啟 Apache services 即可。
這樣就可以 了,
要記得O要大寫的。

Tuesday, March 2, 2010

Cakephp list field combine

如果有d人叫你combine 個table 入面既field咁你就可以用以下既方法

$flights = $this->Package->Flight->
find('all',array('contain'=>'Airline','fields'=>array('Flight.id','Flight.flight_number', 'Airline.airline_code')));
$flights = Set::combine($flights, '{n}.Flight.id',
array('%s %s', '{n}.Airline.airline_code', '{n}.Flight.flight_number'));

Cakephp的奇怪2

又係不小心之過。。。
個routes真係好難set。。
有時如果你用named parameter
你就要係routes個到set以下既野
Router::connectNamed(array('Search.cityID','Search.city','Search.validity','Search.check_in','Search.check_out'));

咁佢就識得避開d parameter咁你就好易咁set得返d language la

係apphelper set左以下既野。。。
你就可以等佢自己set lang
但我未試過係咪真係work。。。XD

class AppHelper extends Helper {
function url($url = null, $full = false) {
if(!isset($url['language']) && isset($this->params['language'])) {
$url['language'] = $this->params['language'];
}

return parent::url($url, $full);
}

Cakephp的奇怪

我唔知到係咪ror都係咁。。。但而家既做法變左係咁。。。
Router::connect('/:language/:controller/:action/',
array(),
array('language' => '[a-z]{2}'));
呢句係囉黎接所有既action format要好似上面所寫咁

Router::connect('/:language/:controller/:action/:id',
null,
array('pass' => array('id'),'language' => '[a-z]{2}','id' => '[0-9]+'));
呢句係囉黎接所有既action format要好似上面所寫咁,但佢會support id既。。。但記住id係要pass既。。。。唔pass佢唔知點解食唔到。。。。=-=

Router::connect('/:language/:controller/:action/*',
null,
array('language' => '[a-z]{2}'));

如果唔記得加呢句。。。。你唔洗指意放工。。。。佢係對應呢句
link(__('Book now', true), array('controller'=>'hotel_enquiries','action' => 'submitinfo','language' => $WEB_LANG,$package['Hotelpackage']['id']));?>
因為呢句pass左個好hotelpackage.id比佢。。。

佢如果要係一個$html->link到加一個language,就要用佢
echo $html->link(__('Login',true),array('controller'=>'users', 'action'=>'login','language' => $WEB_LANG));
有時你只係想改佢既language而唔係改佢contoller同action就用佢

echo $html->link(__('English',true),array('language' => HK,"id"=>$id));
但要留意。。。有時你係要有id。。。無左佢。。。你又會進入另一個ot既世界。。。。so
記住。。。