Ik ben begonnen om over te schakelen naar OOP en om een beetje te begrijpen wat er gebeurt ben ik begonnen met CodeIgniter.
Nou was er nogal wat kritiek op dit framework (te beperkt, fouten), maar het lijkt alsof er sinds versie 3 wel wat verbeterd is en ik wil beginnen met iets simpelers dan ZendFramework.
Maar nou heb ik 2 vragen:
1- Is Codeigniter echt verbeterd en is dit geschikt om mee te beginnen?
2- Ik ben al zover dat ik data in de database kan wegschrijven en ophalen, maar ik krijg het niet juist weergegeven. Via de var_dump zie ik dat wel de juiste resultaten uit de db gehaald worden, dus dat gaat goed.
Dit is wat ik in de 'controller' heb:
<?php
class Fotoalbum extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('Fotoalbum_model');
$this->load->helper('url_helper');
}
public function index() {
$data['fotomappen'] = $this->Fotoalbum_model->get_fotomappen();
$this->load->view('templates/header', $data);
$this->load->view('templates/menu', $data);
$this->load->view('fotoalbum/index', $data);
$this->load->view('templates/footer');
}
}
?>
Dit staat in de 'model':
<?php
class Fotoalbum_model extends CI_Model {
public function __construct() {
$this->load->database();
}
public function get_fotomappen() {
$this->db->order_by('titel, link');
$this->db->select('titel, link');
$query = $this->db->get('fotomappen');
return $query->result();
}
}
?>
En nu moet de 'view' de titel en link als volgt weergeven:
titel
link
link
link
titel
link
Dus elke link die dezelfde titel heeft moet gegroepeerd worden onder die titel.
Toen ik dit script als procedureel script had, zag de call er zo uit:
<dl>
<?php foreach ($fotomappen as $map => $submappen) { ?>
<dt><?php echo $map; ?></dt>
<?php foreach ($submappen as $submap) {
?><dd><?php echo $submap; ?></dd><?php
}
}
?>
</dl>
Dit werkt nu dus niet meer, want wat ik krijg is een array met voor $map het volgnummer van de array, en voor $submap de titel en link.
Dus het volgnummer van de array moet eruit, $map moet de titel weergeven en $submap de link.
Heb vanalles geprobeerd, maar ik krijg het niet voor elkaar.