我在Web服务器上有一个Drupal站点。在网站的一页上,我想从sqlite数据库中打印出信息。但是如果我输入页面的网址,我会被重定向到/core/install.php
我使用以下代码将数据库集成到/sites/defualt/settings.php 中:
$databases['external']['default'] = [
'driver' => 'sqlite',
'database' => '/gesamtausgabe_2019.sqlite',
];
我创建了一个带有/modules/database_mindmap/src/Controller/database_mindmapController.php 的模块:
<?php
namespace Drupaldatabase_mindmapController;
class database_mindmapController{
public function database_mindmap(){
return include('visual.php');
}
}
?>
在包含的视觉对象中.php我使用以下代码调用和查询数据库:
<?php
//open the database
DrupalCoreDatabaseDatabase::setActiveConnection('external');
$database = DrupalCoreDatabaseDatabase::getConnection();
$staticID = '008dd40a-9687-4c84-bbfd-95cf0639e09a';
$sql = 'SELECT * FROM KnowledgeItem';
$query = $database->db_query($sql);
$result = array($query);
while($row = $result) {
if (strpos($row['StaticIDs'], $staticID) !== false){
$pagerange_all = explode(" ",$row['PageRange']);
$text = "<h4>".$row['CoreStatement']."</h4>".$row['Text']."<br><br><i>Seitenzahl: ".$pagerange_all[9]." ".$pagerange_all[11]."</i>";
echo $text;
}
}
// close the database connection
DrupalCoreDatabaseDatabase::setActiveConnection();
?>
所以出于某种奇怪的原因,每次我用/database/mindmap 调用模块时,我都会被重定向到/core/install.php
感谢您的任何帮助!
我通过在 .module 文件中引入正确的钩子来修复它:
function database_mindmap2_theme() {
return [
'database_mindmap2_KEY' => [
'variables' => [
'var1' => NULL, 'var2' => NULL],
],
];
}
并添加自定义内容类型。
我认为潜在的问题是,如果您看不到数据库,代码会假定您正在安装 Drupal。