Question

J'utilise la classe table qui génère automatiquement une table à partir d'un tableau de données extraites de ma base de données.

Modèle :

function get_reports_by_user_id($userid)
{
    return $this->db->get_where('ss2_report',array('userid' => $userid))->result_array();
}

Contrôleur :

function index()
{
    echo $this->table->generate($this->mymodel->get_reports_by_user_id('1234'));
}

Le contrôleur sera finalement déplacé vers une vue lorsque je le ferai fonctionner. Cela génère très bien la table, mais j'aimerais ajouter un lien vers un champ. Par exemple, la colonne id qui me permettrait de créer un lien vers une page de données contenant uniquement l'identifiant de ce rapport. Je sais que je peux simplement sortir la table à l'ancienne à la main. Je peux ensuite ajouter les liens de mon choix, mais j'aimerais pouvoir utiliser l'auto-génération autant que possible. Il doit y avoir un moyen de faire quelque chose d'aussi commun que de lier une cellule de tableau. Quelqu'un a-t-il des idées?

MODIFIER :

L’utilisateur Java PHP l’a généralement juste en dessous. Voici le code qui le fait fonctionner:

function get_reports_by_user_id($userid)
{
    $rows = $this->db->get_where('ss2_report',array('userid' => $userid))->result_array();

    foreach ($rows as $count => $row)
    {
        $rows[$count]['id'] = anchor('report/'.$row['id'],$row['id']);
    }
    return $rows;
}

Je devais simplement remplacer la valeur du tableau d'origine par la version du texte d'ancrage.

Était-ce utile?

La solution

Le seul moyen consiste, dans la fonction get_reports_by_user_id(), à parcourir tous les résultats et à ajouter la balise <a href> aux identifiants. Quelque chose comme ça:

function get_reports_by_user_id($userid)
{
   $rows=$this->db->get_where('ss2_report',array('userid' => $userid))->result_array();
   foreach ($rows as $row)
   {
     $row->id=anchor('site.com/some_controller/some_function/'.$row->id,$row->id);
   }
   return $rows;
}

Je n'utilise pas la bibliothèque de base de données CodeIgniter, je ne suis donc pas sûr du format dans lequel elle retourne $rows, mais le code ci-dessus devrait vous donner une idée générale de ce que vous devez faire.

Autres conseils

Une idée pourrait être de faire quelque chose comme ..

foreach ($row in $this->mymodel->get_reports_by_user_id('1234'))
{
    $row->id = anchor(site_url(array('report', 'user', $row->id)), $row->id);
    $this->table->add_row($row);
}
$this->table->generate();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top