美好的一天,
我有几个有代码的部分。在代码选项卡中,我注意到代码选项卡具有类似的代码。以下是示例
部分1
function onStart()
{
$x = MyModel1::where('myColumn', 'myValue')->first();
// lots of stuff using $x functions
$this['viewData'] = $x->getViewData();
}
部分2
function onStart()
{
$x = MyModel2::where('myColumn', 'myValue')->first();
// lots of stuff using $x functions
$this['viewData'] = $x->getViewData();
}
MyModel1和MyModel2都实现了相同的接口,因此它们具有相同的功能。
我的问题是,我在哪里放置类似的代码?我可以把它放在一个插件中,但这感觉不正确。我可以创建一个基类并让partials调用父方法,但是这意味着修改了vendor文件夹中的代码?
答案 0 :(得分:1)
如果你真的需要管理你的代码,你可以创建组件并在那里添加那些代码,因为它们很容易附加到其他页面(下一步是你需要创建一个插件)
您可以在onRun
方法中编写代码。
https://octobercms.com/docs/plugin/components#page-cycle
而是直接将变量分配给this
,您需要将它们分配为
$this->page['var'] = 'value';
现在它可以像你一样工作。