2012-04-03 57 views
0

,所以我有一個表如下:的Kohana 3.2 - 我想不同的日期

  1. ID
  2. transaction_timestamp(TIMESTAMP CURRENT_TIMESTAMP)

我想獲得來自不同日期交易時間戳使用Kohana ORM 我有一個模型命名爲Model_Transactions

如果我這樣做

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

我收到所有數據。我將如何獲得唯一的日期,因爲我將它用作存檔。我不希望用戶點擊一個存檔並返回一個空白表。

例如:用戶點擊「2012年4月1日」,因爲4月01日沒有交易,有一張空白表,我想避開那些情景,怎麼樣?

回答

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查詢方法。

另一個選項,以獲取ORM對象具有鮮明transaction_timestamp是:

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