这是我用于项目的目录结构:
assets
connection
connection.php
controller
Controller.php
include
header.php
footer.php
model
Model.php
process
add-data.php
view
index.pp
sales-form.php
report.php
config.php
index.php
首先,它加载包含以下代码的index.php
文件:
require_once("controller/Controller.php");
$controller = new Controller;
$controller->index();
您会看到它从下面的代码的Controller.php文件中加载了index()
方法:
public function index () {
require_once('view/index.php');
}
现在index.php
文件容器中包含以下代码:
<?php require_once("include/header.php"); ?>
<a class="btn btn-primary" href="view/sales-form.php">Record a new sales</a>
<a class="btn btn-success" href="view/report.php">Search Report</a>
<?php require_once("include/footer.php"); ?>
现在,您可以看到记录新销售按钮的链接是: view / sales-form.php ,但是当我转到该链接时,它向我显示了该错误讯息:
警告:require_once(config.php):无法打开流:没有此类文件 或第1行上D:\ xampp \ htdocs \ job-tasks \ include \ header.php中的目录
该sales-form.php文件包含此代码
<?php require_once("../include/header.php"); ?>
<?php require_once("../include/footer.php"); ?>
此header.php在下面进行编码:
<?php require_once('config.php'); ?>
html code....
您能告诉我如何解决与链接/位置有关的问题吗?
答案 0 :(得分:2)
您的header.php
应该是:
<?php require_once(__DIR__. '/../config.php'); ?>
由于config.php
位于include
文件夹之外,因此您需要后退一步(转到项目的根目录),然后访问它。
您应将所有端点转换为使用根路径,该根路径将基于您的项目而指向Controller,因此:
Controller.php:
<?php
// get the model class
require(__DIR__ .'/../model/Model.php');
// create Controller class
class Controller {
// hold the model object
public $model;
public function __construct () {
// create model object
$this->model = new Model();
}
public function index () {
require_once(__DIR__ .'/../view/index.php');
}
public function salesForm () {
require_once(__DIR__ .'/../view/sales-form.php');
}
}
Header.php
<?php require_once(__DIR__ .'/../config.php'); ?>
Model.php
require_once(__DIR__ .'/../config.php');
答案 1 :(得分:0)
在从controller.php文件调用控制器之前,您可能必须包括如下配置文件:
<?php require_once('../config.php'); ?>