视图扩展功能中的 Codeigniter 4 未找到我的主视图
Codeigniter 4 in the view extend funcition not found me main view
我有问题白这句话:
codeigniter/app/view/autos.php
``` extend('front\layout\main') ?>```
在我的本地主机上工作,但是当更改到我的共享服务器 (cpanel) 时,不工作。
codeigniter/app/Controllers/Auto.php
```
public function index()
{
helper('tiempo');
$autoModel = new AutoModel($db);
$autos = $autoModel->findAll();
$autos = array('autos' => $autos);
$estructura = view('front/autos', $autos);
return $estructura;
}
```
codeigniter/app/View/front/autos.php
```
<?= $this->extend('front\layout\main') ?>
<?= $this->section('title') ?>
<?= $this->endSection() ?>
<?= $this->section('content') ?>
```
codeigniter/app/View/front/layout/main.php
``` <head>
<title>Tables - SB Admin</title>
<title><?= $this->renderSection('title') ?></title>
</head>
<?= $this->include('front\layout\header') ?>
<?= $this->renderSection('content') ?>
<?= $this->include('front\layout\footer') ?>
<?= $this->renderSection('js') ?>
<script src="js/jquery-3.5.1.slim.min.js"></script>
<script src="js/bootstrap.bundle.min.js"></script>
<script src="js/scripts.js"></script>
<script src="js/jquery.dataTables.min.js"></script>
<script src="js/dataTables.bootstrap4.min.js"></script>
<script src="assets/demo/datatables-demo.js"></script>
</body> ```
我是第一个post请放轻松
欢迎来到 SO Enzo。
首先,感谢您提供一切帮助解释您的问题并让我们回答...
因此,当您在 Windows 下开发然后在 Apache (Linux) 服务器上尝试相同的代码(您将其称为 Cpanel,它只是 Web 服务器控制面板)时,可能会发生这种情况).
在 Windows 下开发允许你做“事情”,因为它是
“放松”它会让你做什么。另一方面,Linux 不是,这是一件好事。
那么让我们来看看你的代码...在一个你用过的地方
$estructura = view('front/autos', $autos);
有效,您应该注意它使用 /(正斜杠)。
在报错的地方,错误信息中明确指出的是
<?= $this->extend('front\layout\main') ?>
在这里玩“找不同”,您可能会问自己“为什么我的代码中斜线是单向的,而代码是斜线是反的?
AND 在它显示错误的地方,斜线是 \ i.e.backslashes.
现在您 100% 知道该文件存在。所以这些词在路径中是正确的,但为什么斜杠(反斜杠)\ 在这里出错而 /(正斜杠)有效?
有线索了。
在 Linux 下,文件路径必须是 /(正斜杠)。
而 windows,使用 XAMPP 或 WAMP 等,将让您如您所见使用两者。
Windows 对于路径和文件名的大小写也很“宽松”。 Linux 不是,这是另一个需要注意的陷阱。
I.E 如果你有一个 /front/layout/main 的路径,你可以将其引用为 /Front/layout/MAIN 以及任何其他仅在 windows 中有效的大写和小写字符的组合。
在 Linux 下,它们必须完全匹配。
结论
路径名使用 \ (backslashes)
extend('front\layout\main') ?>
使用/ (Forward Slashes)
extend('front/layout/main') ?>
希望对您有所帮助。如果没有,请随时询问。
我有问题白这句话:
codeigniter/app/view/autos.php
``` extend('front\layout\main') ?>```
在我的本地主机上工作,但是当更改到我的共享服务器 (cpanel) 时,不工作。
codeigniter/app/Controllers/Auto.php
``` public function index() { helper('tiempo'); $autoModel = new AutoModel($db); $autos = $autoModel->findAll(); $autos = array('autos' => $autos); $estructura = view('front/autos', $autos); return $estructura; } ```
codeigniter/app/View/front/autos.php
``` <?= $this->extend('front\layout\main') ?> <?= $this->section('title') ?> <?= $this->endSection() ?> <?= $this->section('content') ?> ```
codeigniter/app/View/front/layout/main.php
``` <head> <title>Tables - SB Admin</title> <title><?= $this->renderSection('title') ?></title> </head> <?= $this->include('front\layout\header') ?> <?= $this->renderSection('content') ?> <?= $this->include('front\layout\footer') ?> <?= $this->renderSection('js') ?> <script src="js/jquery-3.5.1.slim.min.js"></script> <script src="js/bootstrap.bundle.min.js"></script> <script src="js/scripts.js"></script> <script src="js/jquery.dataTables.min.js"></script> <script src="js/dataTables.bootstrap4.min.js"></script> <script src="assets/demo/datatables-demo.js"></script> </body> ```
我是第一个post请放轻松
欢迎来到 SO Enzo。 首先,感谢您提供一切帮助解释您的问题并让我们回答...
因此,当您在 Windows 下开发然后在 Apache (Linux) 服务器上尝试相同的代码(您将其称为 Cpanel,它只是 Web 服务器控制面板)时,可能会发生这种情况).
在 Windows 下开发允许你做“事情”,因为它是 “放松”它会让你做什么。另一方面,Linux 不是,这是一件好事。
那么让我们来看看你的代码...在一个你用过的地方
$estructura = view('front/autos', $autos);
有效,您应该注意它使用 /(正斜杠)。
在报错的地方,错误信息中明确指出的是
<?= $this->extend('front\layout\main') ?>
在这里玩“找不同”,您可能会问自己“为什么我的代码中斜线是单向的,而代码是斜线是反的? AND 在它显示错误的地方,斜线是 \ i.e.backslashes.
现在您 100% 知道该文件存在。所以这些词在路径中是正确的,但为什么斜杠(反斜杠)\ 在这里出错而 /(正斜杠)有效?
有线索了。
在 Linux 下,文件路径必须是 /(正斜杠)。 而 windows,使用 XAMPP 或 WAMP 等,将让您如您所见使用两者。
Windows 对于路径和文件名的大小写也很“宽松”。 Linux 不是,这是另一个需要注意的陷阱。
I.E 如果你有一个 /front/layout/main 的路径,你可以将其引用为 /Front/layout/MAIN 以及任何其他仅在 windows 中有效的大写和小写字符的组合。 在 Linux 下,它们必须完全匹配。
结论
路径名使用 \ (backslashes)
extend('front\layout\main') ?>
使用/ (Forward Slashes)
extend('front/layout/main') ?>
希望对您有所帮助。如果没有,请随时询问。