2012-04-03 9 views
0

を取得したいので、私は次を持つテーブルがあります。私から明確な日付を取得したいと思いKohanaの3.2 - 私は明確な日付

  1. ID
  2. transaction_timestamp(TIMESTAMP CURRENT_TIMESTAMP)

をORA を使用しているトランザクションタイムスタンプ私はこれを行うならModel_Transactions

というモデルを持っています

Model_Transactions::factory('transactions')->find_all(); 

私はすべてのデータを取得します。私はアーカイブとして使用するので、どのように私は明確な日付だけを得るでしょう。私は、ユーザーがアーカイブをクリックして空白のテーブルを返すことを望みません。

たとえば、4月1日に取引がないため、ユーザーが「April 01、2012」をクリックすると、空白の表が表示されます。これらのシナリオは避けたいですか?

答えて

6

ORMモデルは、テーブル内の単一のエントリを表す必要があります。 ORM find_all()を使用すると、テーブル内のすべての属性を選択することができます。あなたのIDは一意でなければならないので、各行は本質的に区別されます。

個別のtransaction_timestamp値のリストを取得するだけの場合は、モデルにメソッドを追加して、それを取得することができます。ような何か:

public function get_distinct_timestamps() 
{ 
    return DB::select('transaction_timestamp') 
      ->from($this->_table_name) 
      ->distinct('transaction_timestamp') 
      ->execute() 
      ->as_array(); 
} 

は、次に、あなたが使用することができます。もちろん

$timestamps = Model::factory('transactions')->get_distinct_timestamps(); 
foreach($timestamps as $timestamp) 
{ 
    $value = $timestamp['transaction_timestamp']; 
} 

これは単なる一例です。配列を返す必要はないかもしれません。しかし、ORM問合せメソッドの使用に限定されるわけではありません。

Model_Transactions::factory('transactions') 
    ->group_by('transaction_timestamp') 
    ->find_all(); 
:明確なtransaction_timestampがあるにして

ORMを取得するための別のオプションは、オブジェクト

関連する問題