Kohana - ErrorException [Erreur fatale]: Impossible d'utiliser l'objet de type modèle sous forme de tableau

StackOverflow https://stackoverflow.com/questions/4347589

  •  30-09-2019
  •  | 
  •  

Question

Pouvez-vous donner des conseils sur la façon de résoudre l'erreur suivante:

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

S'il vous plaît voir le contrôleur:


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');
        }
    }
Était-ce utile?

La solution

Vous ne as_array () vraiment pas besoin là-bas. Les objets Database_Result se comportent comme tableau par défaut, vous pouvez le faire foreach ($branches as $b) echo $b->id il sans même convertir en tableau;

Database_Result implements Countable, Iterator, SeekableIterator, ArrayAccess

La seule utilisation actuelle de la méthode Database_Result :: as_array () serait pour générer des tableaux clés => val, comme je l'indiquais ici . Vous pouvez actuellement pas convertir en tableau des résultats de base de données, bien que semble logique au premier .

Autres conseils

Je voudrais essayer ceci:

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

Il pourrait fonctionner, vous avez parfois besoin de déclarer avant de le transformer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top