2013-01-17 64 views
1

我需要各種表中的數據。我通過使用cakephp的$hasMany變量來綁定它們。數據成功提取。但我需要對來自$hasMany表的結果進行排序。如何在cakephp 2.0中對綁定表的數據進行排序

例如。我有兩個表

  • Survey
  • Questions

現在Survey下表包含了調查樣titleidpurposeQuestions表包含了相關的調查問題相關的數據。我在調查模型中將問題表與調查結合起來。現在我在Questions表中有一個名字爲ordering的字段。我需要按照該順序獲取數據。

如何以這種方式獲取?

請幫幫我。

回答

2

如果你想直接將數據進行排序時,它是獲取從數據庫

您可以定義默認順序當在模型中的表格之間添加關係時。在您的Survey模型中:

var $hasMany = array(
    'Question' => array(
     'order' => 'ordering DESC' 
    ) 
); 

請參閱http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#hasmany

在有條件的陣列獲取來自控制器的數據時,您還可以自定義排序,http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#find

$conditions = array(
    'order' => array('Question.ordering DESC') 
); 

如果您正在使用分頁程序組件分頁你的結果,你可以設置它喜歡在下面例如book.cakephp.org/2.0/en/core-libraries/components/pagination.html#query-setup:

public $paginate = array(
    'order' => array(
     'Question.ordering' => 'desc' 
    ) 
); 

如果你想在日提供的數據進行排序E查看

在這裏可以(與在控制器中分頁組件一起)使用分頁輔助爲:

echo $this->Paginator->sort('Question.ordering'); 

看到book.cakephp.org/2.0/en/core-庫/助手/ paginator.html#creating-sort-links

對不起,刪除最後兩個鏈接上的'http://',但我不允許發佈兩個以上的鏈接(< 10 rep)。

0

在CakePHP中,您可以通過關聯的表進行排序。但你需要列進行排序,你應該使用這樣的事情在你看來:

<?php echo $this->Paginator->sort('Question.ordering'); ?> 
相關問題