透過 Set::combine 產生自訂清單

edited 十月 2013 in CakePHP
一般在 CakePHP 產生清單的方式是像這樣:
$members = $this->Member->find('list');
pr($members);

Array
(
    [11] => kiang
    [20] => kevin
    [30] => ken
    [32] => judi
    [76] => merry
)

但有時會想要在清單中放入更多資訊,當然透過簡單的迴圈也可以,只是 CakePHP 內建的一個方法可以簡化作業,像這樣:
$members = $this->Member->find('all');
$members = Set::combine($members, 'Member.{n}.id', array('[{0}]{1}', 'Member.{n}.id', 'Member.{n}.name')));
pr($members);

Array
(
    [11] => [11]kiang
    [20] => [20]kevin
    [30] => [30]ken
    [32] => [32]judi
    [76] => [76]merry
)

CakePHP 提供了許多類似的工具,執行速度不見得比較快,但是藉此產生的程式碼會比較容易閱讀(純粹個人想法)

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=3513
Sign In or Register to comment.