【发布时间】:2017-01-11 18:55:05
【问题描述】:
在我开发的插件中,我需要用静态方法动态扩展另一个插件的模型。我不知道该怎么做。
在我的插件中,我有一个从 Jiri/JKShop/Models/product 继承的课程会话对象
在 jiri_jkshop_products 表中,我添加了一个 is_course 字段。
在创建产品对象之前,我想通过以下方式知道它是否是课程产品:
if (\Jiri\JKShop\Models\Product::isCourse($productJson["product_id"])) {
$product = \PluginAuthor\PluginName\Models\Session::find($productJson["product_id"]);
} else {
$product = \Jiri\JKShop\Models\Product::find($productJson["product_id"]);
}
请问,如何在我的插件的plugin.php文件中动态添加静态方法到产品模型?
我希望这个想法对应优雅的代码,如果你有更好的,我也接受
在此先感谢您和问候, 帕特里克
【问题讨论】:
-
你看过
__callStatic()魔术方法吗?如果您在实际上没有以编程方式设置该方法的对象上调用静态方法,它将被调用。更多信息:php.net/manual/en/… -
感谢 Denis,这是一个不错的功能,但我的目的不是直接修改产品模型(我希望它保持其完整性),而是在我的 plugin.php 引导函数中动态修改
标签: php laravel octobercms