Showing posts with label cakephp. Show all posts
Showing posts with label cakephp. Show all posts

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
記住。。。






Thursday, February 18, 2010

cakephp 插入extra field in relational tables

其實唔洗太難。。。
只要咁做就得

記住一定要有個relational table入面既reference key。。。好似flight_id咁


$this->data['Package']['id']='1';
$this->data['Package']['content']='i am a package. haha';
$this->data['Flight']['0']['FlightsPackage']['flight_id']='1';
$this->data['Flight']['0']['FlightsPackage']['service_class']='22';