###前提・実現したいこと
はじめまして。
PHP5.6、PostgreSQL9.6、XAMPPのAPACHEを使用して
CodeIgniter3のチュートリアルを行っています。
チュートリアルの概要としては
・作るのはブログのようなもの
・記事の一覧、個別ページ、投稿フォーム、サンクスページを作る
・投稿フォームからはタイトルと本文を入力して送信するとdbに追加
・記事の一覧に追加される
といったようなものです。
詳細は以下のページにあります。
http://codeigniter.jp/user_guide/3/tutorial/news_section.html
写経で1周した結果、フォームから書き込んで記事一覧に追加することは成功しました。
###発生している問題・エラーメッセージ
記事一覧から「view article」をクリックし、記事の個別ページを開こうとすると以下のエラーが表示されます。
php
1A PHP Error was encountered 2 3Severity: Warning 4Message: Invalid argument supplied for foreach() 5Filename: news/index.php 6Line Number: 3 7Backtrace: 8File: C:\xampp\htdocs\CodeIgniter\application\views\news\index.php 9Line: 3 10Function: _error_handler 11 12File: C:\xampp\htdocs\CodeIgniter\application\controllers\News.php 13Line: 38 14Function: view 15 16File: C:\xampp\htdocs\CodeIgniter\index.php 17Line: 315 18Function: require_once
###該当のソースコード
エラーメッセージの該当のソースはここの部分です。
/application/views/news/index.php
php
1<h2><?php echo $title; ?></h2> 2 3<?php foreach ($news as $news_item): ?> 4 5 <h3><?php echo $news_item['title']; ?></h3> 6 <div class ="main"> 7 <?php echo $news_item['text']; ?> 8 </div> 9 <p><a href="<?php echo $news_item['slug']; ?>">View article</a></p> 10 11<?php endforeach; ?>
###試したこと
エラーメッセージでググった結果、foreach文のnullの時の問題かと思われ、
以下のように強制的に配列になるように書き換えましたが依然エラーが表示されます。
ここでどうにもならなくなってしまったのでここからどうすればよいのかお聞きしたいです。
そもそもこれはチュートリアルのコードがおかしいのでしょうか。
php
1<h2><?php echo $title; ?></h2> 2 3<?php foreach ((array)$news as $news_item): ?> 4 5 <h3><?php echo $news_item['title']; ?></h3> 6 <div class ="main"> 7 <?php echo $news_item['text']; ?> 8 </div> 9 <p><a href="<?php echo $news_item['slug']; ?>">View article</a></p> 10 11<?php endforeach; ?>
php
1A PHP Error was encountered 2 3Severity: Notice 4Message: Undefined variable: news 5Filename: news/index.php 6Line Number: 3 7Backtrace: 8 9File: C:\xampp\htdocs\CodeIgniter\application\views\news\index.php 10Line: 3 11Function: _error_handler 12 13File: C:\xampp\htdocs\CodeIgniter\application\controllers\News.php 14Line: 38 15Function: view 16 17File: C:\xampp\htdocs\CodeIgniter\index.php 18Line: 315 19Function: require_once
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。