Frage

Können Sie beraten, wie die folgenden Fehler zu beheben:

ErrorException [ Fatal Error ]: Cannot use object of type Model_Branch as array

Bitte beachten Sie Controller:


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');
        }
    }
War es hilfreich?

Lösung

Sie nicht wirklich brauchen as_array () gibt. Database_Result Objekte verhalten sich wie Array standardmäßig Sie können es tun foreach ($branches as $b) echo $b->id ohne es zu umzuwandeln;

Database_Result implements Countable, Iterator, SeekableIterator, ArrayAccess

Die einzige aktuelle Nutzung von Database_Result :: as_array () Methode wäre zum Erzeugen von Schlüsseln => val-Arrays, wie ich darauf hinwies, hier . Sie können zur Zeit nicht diese von Datenbank-Ergebnisse Array konvertieren, obwohl es zunächst logisch erscheint.

Andere Tipps

Ich würde versuchen, diese:

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

Es könnte funktionieren, manchmal müssen Sie es erklären, bevor Sie es zu transformieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top