Codeigniter en utilisant foreach en vue
J'utilise Codeigniter sur un Apache xampp configurer et d'essayer d'utiliser foreach dans une vue pour la première fois et je ne peux pas le faire fonctionner.
Mon code de Contrôleur:
class Test extends CI_Controller {
public function index($page = 'testv')
{
if ( ! file_exists(APPPATH.'/views/'.$page.'.php'))
{
show_404();
}
$this->load->model('testm');
$data['news'] = $this->testm->get_news();
$this->load->view('headder');
$this->load->view($page, $data);
$this->load->view('footer');
}
}
Mon Modèle:
class Testm extends CI_Model {
public function __construct()
{
parent::__construct();
}
Public function get_news()
{
$query = $this->db->query('SELECT id, date, text FROM news');
foreach ($query->result_array() as $row)
{
echo $row['id'];
echo $row['date'];
echo $row['text'];
}
}
}
Mon Point De Vue:
<main id='central_section'>
<section id='logo_section'>
<img src='<?php echo base_url(); ?>img/logo.png' id='small_logo' alt="Logo">
</section>
<section id='content'>
<p class="large_headding">News</p>
<?php foreach($news as $news) { ?>
<article class="article_text">
<p class="segment_headding"><?php echo $news->date; ?></p>
<?php echo $news->text; ?>
</article>
<?php } ?>
<div id="spacer"></div>
</section>
</main>
À l'heure actuelle je reçois le message d'avertissement suivant:
A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: views/testv.php
Line Number: 18
Backtrace:
File: C:\xampp\htdocs\tsh\CI\application\views\testv.php
Line: 18
Function: _error_handler
File: C:\xampp\htdocs\tsh\CI\application\controllers\test.php
Line: 16
Function: view
File: C:\xampp\htdocs\tsh\public_html\index.php
Line: 292
Function: require_once
Mais le texte de ma base de données ne s'affichent en haut de la page à l'extérieur de la headder donc je connais la base de données est en cours de connexion et les données ont été recueillis. Quelqu'un peut-il me dire où je vais mal?
OriginalL'auteur Tessa | 2015-04-16
Vous devez vous connecter pour publier un commentaire.
vous avez juste question de votre modèle en fonction de boucle foreach juste remplacez la par:
OriginalL'auteur Imran Qamer
Dans votre contrôleur, vous êtes correctement attribuant le résultat du modèle à une variable:
mais dans votre modèle, vous êtes ÉCHO le résultat, pas RETOUR. DONC
$data['news']
estnull
(puisque le modèle de la méthode ne retourne rien), et vous ne pouvez pas effectuer une itération surnull of
cours -> et c'est l'erreur dans votre vue. Changer de modèle pour retourner un tableau, par exemple:car, en effet, vous êtes en écho (comme l'a souligné ci-dessus) avant les points de vue sont de sortie, c'est pourquoi vous les voyez avant le rendu html
Pas moi, j'ai jusqu'a voté à vous comme je vous ai trouvé une explication très utile. La seule raison pour laquelle je ne marque pas la vôtre comme la réponse correcte est que Imrân de répondre d'abord et de sa réponse tout en n'incluant plus de détails, n'a répondu à ma question. N'en déplaise signifiait.
OriginalL'auteur Damien Pirsy
veuillez essayer ceci:
dans votre page d'affichage de:
OriginalL'auteur
Essayer
foreach($news as $new)
au lieu deforeach($news as $news)
.OriginalL'auteur ryush00
utilisation
au lieu
OriginalL'auteur Omar El Don
Essayez ceci pour votre réponse:
de votre contrôleur:
fonction de modèle :
en vue de fichier :
OriginalL'auteur Uraj