我正在创建Joomla3组件,我需要在安装过程中创建一些虚拟内容,我知道我可以使用sql文件来填充表,但是这主要适用于为我的组件定制创建的表。当我想向#__content表中添加某些内容时,就会出现问题,“别名”列不被认为是唯一的,如果有人多次尝试安装组件,可能会出现重复的条目。我想知道在#__content表中插入记录的最佳方法是什么,而不必担心重复条目之类的附带损害。谢谢大家!
发布于 2014-12-07 18:29:29
解决方案1:您可以使用INSERT IGNORE,以便在多次安装扩展时不会担心重复条目。
解决方案2:在Joomla中,组件可以提供脚本文件。
因此,在安装/ update /卸载joomla触发器或调用扩展脚本文件中可用的某些预定义函数(如install、update、preflight、postflight等)时。
可以在扩展脚本中添加install method,并在此方法上执行此sql文件,这样就不会在扩展更新的情况下调用此文件。
解决方案3:您可以在数据库中为这个任务维护一个单独的表,当您执行这个虚拟内容创建时,您可以在DB中标记这个表,而且您还可以在启动虚拟内容创建之前检查这个步骤是否已经完成,以便当有人多次安装这个扩展时,这个检查将阻止同一任务一次又一次地执行。
https://stackoverflow.com/questions/27345984
复制相似问题