Кохана 3,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();