PHP上的位置或路径问题

时间:2019-06-20 11:42:00

标签: php

这是我用于项目的目录结构:

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....

您能告诉我如何解决与链接/位置有关的问题吗?

2 个答案:

答案 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'); ?>