我有一个函数,它创建我制作的表单模板的新实例(不使用模板引擎),并根据传递给它的对象用各种数据填充它。加载页面时,我使用此函数为现有对象创建表单,但界面中还有一个按钮,它向单独的脚本发出 ajax 请求,该脚本创建一个新对象,然后调用该函数为该对象创建表单。作为对 ajax 的响应发送的对象。
错误是:
Warning: DOMDocument::loadHTMLFile(): I/O warning : failed to load external entity "templates/form_edit_event.html" in C:\wamp64\www\<private>\src\<private>\components\component_edit_event.php on line 12
它引用的代码:
11 $eventDom = new DOMDocument();
12 $eventDom->loadHTMLFile('templates/form_edit_event.html');
但问题是,当页面首次加载时,我的脚本和 loadHTMLFile 函数可以很好地为已经存在的对象创建表单。仅当我使用该按钮尝试创建新按钮时,才会出现 I/O 错误。其确切文本如下,尽管我掩盖了一些不重要的目录名称:
它加载的文件是纯 html,甚至没有页眉/页脚等,只是<form>contents</form>. 我不知道为什么它有时会失败。
从ajax调用的整个脚本(减去一些不相关的使用/包含)是这样的,component_edit_event.php上面提到的脚本创建了表单:
include_once __DIR__ . '\..\components\component_edit_event.php';
$tourneyId = $_POST['tourneyId'];
/** @var DimTournament $tourney */
$tourney = DimTournament::findById($tourneyId);
$newEvent = new DimEvent($tourney);
echo createEventForm($newEvent)->saveHTML();
我认为我不需要包含任何其他代码,但如果需要的话我绝对可以。
叮当猫咪