KOHANA - ErrorException [Fatal Error]: невозможно использовать объект типа Model в качестве массива - PullRequest
0 голосов
/ 03 декабря 2010

Можете ли вы посоветовать, как устранить следующую ошибку:

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 голосов
/ 03 декабря 2010

Тебе не нужен as_array () там. Объекты Database_Result по умолчанию ведут себя как массив, вы можете сделать foreach ($branches as $b) echo $b->id там, даже не преобразовав его в массив;

Database_Result implements Countable, Iterator, SeekableIterator, ArrayAccess

Единственное текущее использование метода Database_Result :: as_array () будет для генерации массивов key => val, как я указывал здесь . В настоящее время вы не можете преобразовать это в массив результатов базы данных, хотя сначала это кажется логичным .

0 голосов
/ 03 декабря 2010

Я бы попробовал это:

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

Это может сработать, иногда вам нужно объявить его перед преобразованием.

...