Kohana 3.2 - 我希望得到截然不同的日期

Gia*_*lan 0 php kohana kohana-orm kohana-3.2

所以我有一张桌子,内容如下:

  1. ID
  2. transaction_timestamp(TIMESTAMP CURRENT_TIMESTAMP)

我想从使用Kohana ORM的交易时间戳获得不同的日期我有一个名为的模型 Model_Transactions

如果我这样做

Model_Transactions::factory('transactions')->find_all();
Run Code Online (Sandbox Code Playgroud)

我得到所有数据.我将如何只获得不同的日期,因为我将它用作存档.我不希望用户单击存档并返回一个空白表.

例如:用户点击"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();
}
Run Code Online (Sandbox Code Playgroud)

然后你可以使用:

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

当然这只是一个例子.您可能不想返回数组.但您不限于使用ORM查询方法.

获取具有不同transaction_timestamp的ORM对象的另一个选项是:

Model_Transactions::factory('transactions')
    ->group_by('transaction_timestamp')
    ->find_all();
Run Code Online (Sandbox Code Playgroud)