Ho questo problema in codeigniter: Cerco di creare un sistema di albero di navigazione dal database.codeigniter group_by restituisce solo la prima riga
modello:
function getServices()
{
$this->db->select('service_url, service_title, category_title');
$this->db->join('services_category', 'services_category.id=services.category_id');
$this->db->group_by('category_title');
$this->db->order_by('service_title', 'ASC');
$query = $this->db->get('services');
if($query->result() == TRUE)
{
foreach($query->result_array() as $row)
{
$result[] = $row;
}
return $result;
}
}
vista:
<?php if(isset($services) && $services) : foreach($services as $s) : ?>
<ul>
<li><a href="#"><?php echo $s['category_title'] ?></a>
<ul>
<li><?php echo anchor('services/' . $s['service_url'], $s['service_title']); ?></li>
</ul>
</li>
</ul>
<?php endforeach; ?>
<?php endif; ?>
ormai fin qui tutto bene, il risultato sta tornando ogni categoria il modo si suppone, ma il servizio sta tornando un solo servizio per categoria e in alcune categorie ci sono 15 servizi. Qualcuno ha voglia di darmi una mano o una spiegazione che cosa sta andando male? Grazie mille.
"Non sono un esperto di php o codeigniter, ho appena iniziato non molto tempo fa, quindi per favore non sparare al principiante."
nota: ho provato senza il group_by e order_by, e sta tornando tutti i servizi, ma le categorie stanno ripetendo,
es:
category-a
service1
category-a
service2
category-b
service10
category-b
service11
category-c
service30
category-c
service31
....
uomo, sei una leggenda, lo giuro su Dio, io cercavo questo oltre quattro ore e nessuna risposta, sicuramente io scriverò un tutorial su questo sul blog, e naturalmente ti citerò. Grazie mille, apprezzo molto il tuo aiuto – lesandru
in realtà voglio chiederti una cosa se non è troppo, è buona norma usare il modello nella vista? non rompe il MVC? – lesandru
Ciao Alex, non infrange MVC poiché hai mantenuto la definizione dei dati nel modello, hai solo esposto i metodi del modello nella tua vista, che idealmente dovrebbe essere a livello di controller. Di solito uso gli helper in modo che tutte le chiamate al modello da entrambi i controller/viste siano in help. – ace