KOHANA - ErrorException [致命错误]:不能使用Model类型的对象作为数组

时间:2010-12-03 16:25:33

标签: php kohana kohana-orm

您能否就如何解决以下错误提出建议:

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');
        }
    }

2 个答案:

答案 0 :(得分:0)

我会试试这个:

$branches = $agent->branches->find_all();
$branches = $branches->as_array();

它可能有用,有时你需要在转换它之前声明它。

答案 1 :(得分:0)

你真的不需要as_array()。默认情况下,Database_Result对象表现为数组,您可以在那里进行foreach ($branches as $b) echo $b->id,甚至无需将其转换为数组;

Database_Result implements Countable, Iterator, SeekableIterator, ArrayAccess

Database_Result :: as_array()方法的唯一当前用法是生成key => val数组,我指出here。您目前无法将其转换为数据库结果数组,尽管它是seems logical at first