Domanda

Sto usando la classe table che genera automaticamente una tabella per me da una matrice di dati estratti dal mio database.

Modello :

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

Regolatore :

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

Il controller alla fine verrà spostato in una vista quando lo faccio funzionare. Questo genera bene la tabella, ma vorrei aggiungere un collegamento a un campo. Ad esempio, la colonna id che mi consentirebbe di collegarmi a una pagina di dati solo per l'ID del rapporto. So che posso semplicemente produrre manualmente il tavolo alla vecchia maniera. Posso quindi aggiungere qualsiasi collegamento che desidero, ma mi piacerebbe poter utilizzare l'autogenerazione il più possibile. Deve esserci un modo per fare qualcosa di comune come collegare una cella di tabella. Qualcuno ha qualche idea?

Modifica :

L'utente Java PHP lo ha principalmente proprio sotto. Ecco il codice che lo fa funzionare:

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

Avevo solo bisogno di sostituire il valore nella matrice originale con la versione del testo di ancoraggio.

È stato utile?

Soluzione

L'unico modo è, nella funzione get_reports_by_user_id(), passare in rassegna tutti i risultati e aggiungere il tag <a href> agli ID. Qualcosa del genere:

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

Non utilizzo la libreria del database di CodeIgniter, quindi non sono sicuro del formato in cui restituisce $rows, ma il codice sopra dovrebbe darti l'idea generale di cosa devi fare.

Altri suggerimenti

Un'idea potrebbe essere quella di fare qualcosa come ..

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();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top