Codeigniter mithilfe von foreach im view
Bin ich mit Codeigniter auf einem Apache-xampp einrichten und versuchen, mithilfe von foreach im view für das erste mal und ich kann einfach nicht damit es funktioniert.
Mein Controller code:
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');
}
}
Mein Modell:
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'];
}
}
}
Meiner Sicht:
<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>
Derzeit bekomme ich die folgende Warnmeldung angezeigt:
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
Aber der text aus meiner Datenbank erscheint am oberen Rand der Seite außerhalb der headder, damit ich weiß, die Datenbank verbinden und die Daten von ihm gesammelt werden. Kann mir jemand sagen, wohin ich gehe falsch gemacht?
InformationsquelleAutor Tessa | 2015-04-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie nur haben Problem in Ihrem Modell die Funktion foreach-Schleife ersetzen Sie einfach mit:
InformationsquelleAutor Imran Qamer
In Ihrer Steuerung sind Sie richtig weisen das Ergebnis der Modell um eine variable:
aber in Ihrem Modell, das Sie ECHO das Ergebnis, nicht RÜCKKEHR. SO
$data['news']
istnull
(da das Modell die Methode nichts zurückgibt), und man kann nicht Durchlaufennull of
natürlich -> und das ist der Fehler in deiner Ansicht. Ändern Sie Ihr Modell, um ein array zurückgeben, zum Beispiel:weil, in der Tat, du bist hallte es (wie oben dargelegt), bevor Sie die Ansichten sind ausgegeben, das ist, warum Sie sehen, wie Sie vor den gerenderten html
Nicht mit mir, ich up stimmten Sie, als ich Sie Erklärung, sehr nützlich. Der einzige Grund, warum ich nicht daneben deins die richtige Antwort ist, dass Imran zunächst beantwortet und seine Antwort, während nicht einschließlich, wie viel detail, hat meine Frage beantworten. Nichts für ungut gemeint.
InformationsquelleAutor Damien Pirsy
bitte versuchen Sie dies:
in Ihren anzeigen Seite:
InformationsquelleAutor
Versuchen
foreach($news as $new)
stattforeach($news as $news)
.InformationsquelleAutor ryush00
verwenden
statt
InformationsquelleAutor Omar El Don
Versuchen, diese für deine Antwort:
Ihren controller:
Modell Funktion :
in der view-Datei :
InformationsquelleAutor Uraj