Кохана 3,2 - я хочу, чтобы получить разные даты

Поэтому у меня есть таблица со следующим:

  1. Я бы
  2. транзакция_временная отметка (TIMESTAMP CURRENT_TIMESTAMP)

Я хотел бы получить различные даты из отметки времени транзакции, используя Kohana ORM, у меня есть модель с именем Model_Transactions

если я сделаю это

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

я получаю все данные. Как бы я получить только отдельные даты, так как я бы использовал его в качестве архива. Я не хочу, чтобы пользователь нажимал на архив и возвращал пустую таблицу.

например: пользователь нажимает "01 апреля 2012 года", поскольку 01 апреля нет транзакции, есть пустая таблица, я хотел бы избежать этих сценариев, как?

1 ответ

Модели ORM должны представлять одну запись в вашей таблице. Используя ORM find_all(), он захочет выбрать все атрибуты в таблице. Поскольку ваш идентификатор должен быть уникальным, каждая строка по сути отличается.

Если вы просто хотите получить список различных значений транзакции_темпера, вы можете добавить метод в свою модель, чтобы получить именно это. Что-то вроде:

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 с отдельной транзакцией транзакции:

Model_Transactions::factory('transactions')
    ->group_by('transaction_timestamp')
    ->find_all();
Другие вопросы по тегам