gpt4 book ai didi

php - Pimcore - 如何通过自定义插件创建自定义表?

转载 作者:行者123 更新时间:2023-11-29 06:04:41 27 4
gpt4 key购买 nike

我正在尝试创建 pimcore 自定义插件

我浏览了它的文档,到目前为止我已经创建了演示插件并且它工作正常。

现在我想通过插件创建自定义表格并需要将数据存储在自定义表格中,但不知道如何实现? 我知道在 plugin.php -> install 方法中,我们需要定义数据库相关的查询

但是如何以 pimcore 的方式编写这些查询,我没有得到。

我已经尝试过下面的代码:

 public static function install()
{
// sql to create table
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
// implement your own logic here
return true;
}

希望这个问题有意义。

最佳答案

然后您将想要在您的数据库上实际执行该查询。 Install 方法是当用户单击扩展面板中插件的安装按钮时调用的方法。您的查询看起来不错,但您现在需要实际运行它。尝试这样的事情:

$db = \Pimcore\Db::get();
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
$db->query($sql);
return true;

不只是返回 true,检查以确保表已创建是个好主意。你可以尝试这样的事情:

$result = $db->describeTable("MyGuests");
if($result){
return true;
}
else{
return false;
}

但是还有很多其他方法可以检查以确保它成功。

更新

如果只有红色的卸载按钮,则需要调整插件的 isInstalled 方法。插件根据插件是否报告它已安装来决定是运行安装还是卸载方法。如果您的 isInstalled 方法返回 true,您将可以选择卸载。如果它返回 false,您将可以选择安装。

也就是说,您应该检查以确保该表存在于您的 isInstalled 方法中,并相应地返回 true 或 false。

关于php - Pimcore - 如何通过自定义插件创建自定义表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42528628/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com