【发布时间】:2017-03-04 04:11:55
【问题描述】:
我仍在努力解决 php,如果这是一个简单的错误,我很抱歉(我已经搜索了很长时间,只能设法得到不同的错误,例如“未定义的索引”)
我正在尝试做的是拥有一个从表格中获取数据的功能(目前它不包含很多内容,但最终将包含每个主网页的所有内容)。它应该需要一个 id,然后为该页面提供正确的模板和内容(现在只是硬编码 $pageName 直到我让它工作)
在我的 Page 类中我有这个
class Page{
public $pageid = null;
public $pagetemplate = null;
public $pagetitle = null;
public $pagebody = null;
public function __construct($data=array()){
if(isset($data['page_id'])) $this->pageid = (int) $data['page_id'];
if(isset($data['page_template'])) $this->pagetemplate = (string) $data['page_template'];
if(isset($data['page_title'])) $this->pagetitle = (string) $data['page_title'];
if(isset($data['page_body'])) $this->pagebody = (string) $data['page_body'];
}
public static function getPageData($pageName){
$conn = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD);
$sql = "SELECT page_template, page_title, page_body FROM pages WHERE page_id = :page_id LIMIT 1";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':page_id', $pageName);
$stmt->execute();
$list = array();
while($row = $stmt->fetch()){
//$pageslug = $row['page_slug'];
$page = new Page($row);
$list[] = $page;
}
$conn = null;
return(array("results" => $list));
}
}
然后在我的索引中我有
function homepage(){
$results = array();
$data = Page::getPageData(1);
$results['pages'] = $data['results'];
$template = $results['pages']->pagetemplate;
require($template);
}
主页函数是用一个 switch case 调用的,但我稍后会更改它,以便导航栏更改给 getPageData 的值,这应该是加载不同页面的方式。无论如何,我收到以下错误:
注意:尝试在第 48 行获取 C:\xampp\htdocs\index.php 中非对象的属性
警告:require():第 49 行 C:\xampp\htdocs\index.php 中的文件名不能为空
致命错误:require(): Failed opening required '' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\index.php 第 49 行
【问题讨论】:
-
那么,48 行在哪里?
-
对不起,48 是 $template = $results['pages']->pagetemplate;还更新了第一篇文章以显示所有 Page 类