Kohana - Errorexception [Фатальная ошибка]: не может использовать объект модели типа как массив
-
30-09-2019 - |
Вопрос
Можете ли вы посоветовать, как решить следующую ошибку:
ErrorException [ Fatal Error ]: Cannot use object of type Model_Branch as array
Пожалуйста, смотрите контроллер:
public function action_view($agent_id='') {
$agent = ORM::factory('agent', $agent_id);
if ($agent->loaded()) {
$values = $agent->as_array();
$branches = $agent->branches->find_all()->as_array();
// Show page
$this->template->title = $agent->company_name;
$this->template->content = View::factory('agent/view')
->bind('title', $this->template->title)
->bind('values', $values)
->bind('branches', $branches);
} else {
Request::instance()->redirect('agent');
}
}
Решение
Вам не нужно as_array () там. Объекты database_result ведут себя как массив по умолчанию, вы можете сделать foreach ($branches as $b) echo $b->id
там, даже не преобразуя его в массив;
Database_Result implements Countable, Iterator, SeekableIterator, ArrayAccess
Единственное использование тока database_result :: as_array () метод будет для генерации ключа => массивы Val, как я указал здесь. Отказ В настоящее время вы не можете преобразовать это в массив результатов базы данных, хотя это кажется логичным сначала.
Другие советы
Я бы попробую это:
$branches = $agent->branches->find_all();
$branches = $branches->as_array();
Это может работать, иногда вам нужно объявить его, прежде чем преобразовать его.
Не связан с StackOverflow