FuelPHP: выбрать ограниченное количество объектов из массива объектов (на основе свойств)
Мне нужно выбрать 3 из последних (10) записей из $data["records"] и отправить их контроллеру записей модуля widgets. Я понятия не имею, как управлять этим наиболее эффективным способом.
Вот код из контроллера, который вызывает модуль:
$data["entries"] = Model_Entry::find('all', array('limit' => 10, 'order_by' => 'created_at'));
$data["latest"] = Request::forge('widgets/entries/view/', false)->execute($data["entries");
Структура $data["records"]:
[1]=>
object(Model_Entry)#31 (10) {
["_data":protected]=>
array(9) {
["id"]=>
string(1) "2"
["entry_title"]=>
string(4) "test"
["entry_status"]=>
string(1) "1"
["created_at"]=>
string(1) "0"
["updated_at"]=>
string(1) "0"
}
}
[2]=>
object(Model_Entry)#32 (10) {
}
...
Просмотр записей:
foreach($entries as $entry):
echo $entry->id;
endforeach;
Можно ли будет выбрать только те объекты с параметром entry_status, равным 1, из этих 10 записей, чтобы избежать другого запроса?
1 ответ
Решение
Следующий код должен делать то, что вы хотите:
$data["entries"] = Model_Entry::query()
->where('entry_status', 1)
->order_by('created_at')
->limit(10)
->get();