我正在努力使我的路线文件从数据库中动态更新。不幸的是,我狡猾的计划引起了一些问题。
我将此行添加到配置文件中 routes.php 的末尾:
include_once APPPATH . "cache/routes.php";
缓存文件夹中的 routes.php 文件会自动更新,这很好。目前,它看起来像这样:
$route["index"] = "pages/index/1";
$route["关于我们/subpagetest"] = "pages/index/4"; $route["关于我们"] = "pages/index/3";
问题是,我在每一页的顶部都收到了这些错误:
遇到 PHP 错误 严重性:警告
消息:无法修改标头信息 - 标头已发送(输出开始于 /home/jshultz/public_html/application/cache/routes.php:3)
文件名:core/Security.php
行号:188
遇到 PHP 错误 严重性:警告
消息:无法修改标头信息 - 标头已发送(输出开始于 /home/jshultz/public_html/application/cache/routes.php:3)
文件名:库/Session.php
行号:672
我想可能是权限错误,但我不知道?我已经尝试更改文件的权限,但这并没有改变任何东西。有任何想法吗?
编辑:
好的,所以应用程序/缓存文件夹中的routes.php需要有开头
这是在缓存文件夹中创建 routes.php 文件的更正代码:
public function save_routes()
{
// this simply returns all the pages from my database
$routes = $this->Pages_model->get_all($this->siteid);
// write out the PHP array to the file with help from the file helper
if ( !empty( $routes ) )
{
// for every page in the database, get the route using the recursive function - _get_route()
foreach( $routes->result_array() as $route )
{
$data[] = '$route["' . $this->_get_route($route['pageid']) . '"] = "' . "pages/index/{$route['pageid']}" . '";';
}
$output = "<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');\n";
$output .= implode("\n", $data);
$this->load->helper('file');
write_file(APPPATH . "cache/routes.php", $output);
}