【问题标题】:How do I get CakePHP to load my <project_root>/src directory instead of vendor/maiconpinto/cakephp-adminlte-theme/src如何让 CakePHP 加载我的 <project_root>/src 目录而不是 vendor/maiconpinto/cakephp-adminlte-theme/src
【发布时间】:2019-07-09 04:41:36
【问题描述】:

总结:
我是一个网络和后端新手,但基本上我继承了一个 CakePHP 项目,我正在尝试建立一个开发环境。我正在尝试在 http://localhost/backend/ 上显示我的项目级 src 目录,该目录会自动路由到 http://localhost/backend/admin/users/dashboard em>,但它只加载 PROJECT_ROOT/vendor/maiconpinto/cakephp-adminlte-theme/src。

问题:
如何使用我的顶级 src 目录加载我自己的侧边栏?提前致谢!
这是所需的侧边栏:correct myteamconnector sidebar
这是正在加载的侧边栏:incorrect vendor files sidebar

设置信息:
系统:Mac OS 10.14 开发应用:

  • AMPPS v3.8
  • Apache v2.4.27
  • PHP v7.1
  • MySQL v5.6.37
  • CakePHP v3.5.17

PROJECT_ROOT/index.php:

require 'webroot' . DIRECTORY_SEPARATOR . 'index.php';

PROJECT_ROOT/webroot/index.php:

// Check platform requirements
require dirname(__DIR__) . '/config/requirements.php';

// For built-in server
if (php_sapi_name() === 'cli-server') {
    $_SERVER['PHP_SELF'] = '/' . basename(__FILE__);

    $url = parse_url(urldecode($_SERVER['REQUEST_URI']));
    $file = __DIR__ . $url['path'];
    if (strpos($url['path'], '..') === false && strpos($url['path'], '.') !== false && is_file($file)) {
        return false;
    }
}
require dirname(__DIR__) . '/vendor/autoload.php';

use App\Application;
use Cake\Http\Server;

// Bind your application to the server.
$server = new Server(new Application(dirname(__DIR__) . '/config'));

// Run the request/response through the application and emit the response.
$server->emit($server->run());

【问题讨论】:

  • 您的第一个问题是您实际上并不想加载src 文件夹。 webroot 文件夹中应该有一个index.php,它负责正确引用src 中的实现所需的一切。换句话说,将您的 Web 服务器的“文档根目录”指向 webroot 文件夹,您应该会顺利进行。
  • 嗯。这就说得通了。谢谢回复。我在帖子中添加了index.phpwebroot/index.php 的内容。关于绑定我的应用程序的行指向我的config 目录,所以不确定我会改变什么,但我显然仍然错过了一些重要的东西。
  • 当它绑定应用程序时,它通过config目录,这样它就知道从哪里加载bootstrap.php。这一切看起来完全正确。将服务器的文档根目录指向webroot 文件夹,它仍然无法正常工作吗?如果没有,请详细说明“不工作”的含义,并确保在 config/app.php 中将 debug 设置为 true,以便获得最大的错误报告。
  • 我添加了未加载的侧边栏图像。更准确地说,看起来有些内容正在加载,但左侧边栏不正确。它只显示来自vendor/ 的一些默认内容,但它应该显示我在 myteamconnector.com 的实时应用程序中看到的侧边栏。 debug 在我的 config/app.php 中设置为 true。很抱歉这里没有理解所有内容。
  • 您需要在代码中找到添加侧边栏的位置。它可能在src/Template/Layout/default.ctp 之下,尽管它可能是vendor/maiconpinto/src/Template/Layout/default.ctp。有很多方法可以做到这一点,所以有很多方法会出错。但是,查看您的环境和配置并不能真正帮助解决它,而且所有这些都可能会让本来可以提供帮助的人望而却步。

标签: php cakephp dashboard vendor ampps


【解决方案1】:

已解决 问题是 composer.json 文件指定了"maiconpinto/cakephp-adminlte-theme": "^1.0",因此安装 v1.1.0 需要不同的实现,具体取决于 cakephp 版本是 =3.5。 所以在 composer.json 文件中指定 "maiconpinto/cakephp-adminlte-theme": "1.0.8" 安装了以前的版本,它与我的 repo 中的实现兼容。 出于某种原因,在工作版本中,composer.json 文件和供应商文件夹之间存在不匹配(即供应商文件夹包含一堆 composer.json 文件没有的插件),只要您允许一切正常工作没有运行作曲家更新,我的同事没有这样做。

【讨论】:

    猜你喜欢
    • 2017-03-30
    • 2021-03-06
    • 2017-05-22
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    • 2018-02-01
    • 1970-01-01
    相关资源
    最近更新 更多