Kohana - ErrorException [Error Fatal]: No se puede utilizar el objeto de tipo Modelo como array
-
30-09-2019 - |
Pregunta
Puede aconsejarle sobre cómo resolver el error siguiente:
ErrorException [ Fatal Error ]: Cannot use object of type Model_Branch as array
Por favor, vea el regulador:
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');
}
}
Solución
En realidad, no necesita as_array () allí. Database_Result objetos se comportan como matriz por defecto, puede hacerlo foreach ($branches as $b) echo $b->id
allí sin siquiera convirtiéndola en serie;
Database_Result implements Countable, Iterator, SeekableIterator, ArrayAccess
El único uso actual de Database_Result :: as_array () método sería para la generación de clave => val arrays, como he señalado aquí . Actualmente no se puede convertir a esta serie de resultados de base de datos, aunque parece lógico a primera .
Otros consejos
Me gustaría probar esto:
$branches = $agent->branches->find_all();
$branches = $branches->as_array();
Puede que funcione, a veces es necesario declararlo antes de transformarlo.