【发布时间】:2018-06-04 10:50:53
【问题描述】:
我正在尝试从我的本地主机中获取 URL,这里是
http://localhost/mvc/index.php?url=Index/category 一切进展顺利,但是当我尝试使用 URL /category 时,它显示错误。这是错误
注意:第 21 行 C:\xampp\htdocs\mvc\index.php 中的数组到字符串转换
注意:未定义的属性:第 21 行 C:\xampp\htdocs\mvc\index.php 中的 Index::$Array
致命错误:未捕获的错误:函数名称必须是 C:\xampp\htdocs\mvc\index.php:30 中的字符串 堆栈跟踪:#0 {main} 在 C:\xampp\htdocs\mvc\index 中抛出.php 在第 21 行
<?php
include_once "system/libs/main.php";
include_once "system/libs/Dcontroller.php";
include_once "system/libs/Load.php";
?>
<?php
$url = isset($_GET['url']) ? $_GET['url'] : NULL;
if ($url != NULL) {
$url = rtrim($url,'/');
$url = explode("/", filter_var($url,FILTER_SANITIZE_URL));
} else {
unset($url);
}
if (isset($url[0])){
include 'app/controllers/'.$url[0].'.php';
$ctlr = new $url[0]();
if (isset($url[2])) {
$ctlr->$url[1]($url[2]);
} else {
if (isset($url[1])) {
$ctlr->$url[1](); //Here is the line where I'm getting the
error
} else {
}
}
}else{
include 'app/controllers/Index.php';
$ctlr = new Index();
$ctlr->home();
}
?>
但是当我使用
category() 而不是 $url[1]
它工作正常。这是索引类。
<?php
class Index extends Dcontroller
{
public function __construct()
{
parent::__construct();
}
public function home()
{
$this->load->view("home");
}
public function category()
{
$data = array();
$catModel = $this->load->model("CatModel");
$data['cat'] = $catModel->catList();
$this->load->view("category", $data);
}
}
【问题讨论】:
-
抛出错误时$url[1]包含什么值?
-
它包含来自 URL 的类别,我已经使用
print_r进行了检查
标签: php url-routing