首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pimcore -如何通过自定义插件创建自定义表?

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

Stack Overflow用户
提问于 2017-03-01 10:01:04
回答 1查看 887关注 0票数 1

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

我浏览了它的文档,到目前为止,我已经创建了演示插件并运行良好。

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

但是如何用我没有得到的方式编写这些查询呢?

我已经尝试了以下代码:

代码语言:javascript
复制
 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;
    }

希望这个问题有意义。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-10 18:43:41

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

代码语言:javascript
复制
$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,不如检查一下是否创建了表。你可以试试这样的方法:

代码语言:javascript
复制
$result = $db->describeTable("MyGuests");
if($result){
    return true;
}
else{
    return false;
}

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

更新

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42528628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档