组件十月 CMS 内的调用组件报错
Posted
技术标签:
【中文标题】组件十月 CMS 内的调用组件报错【英文标题】:Call component inside component October CMS gives an error 【发布时间】:2017-03-18 22:40:54 【问题描述】:我正在尝试扩展现有的插件组件,我 需要添加一个函数但使用插件方法。
这里有什么:
<?php namespace Bbrand\Shop\Components;
use Cms\Classes\ComponentBase;
use Jiri\JKShop\Components\Basket;
class Shopextend extends ComponentBase
public function componentDetails()
return [
'name' => 'shopextend Component',
'description' => 'No description provided yet...'
];
public function defineProperties()
return [];
public function onBasket()
$data = [];
$data["basket"] = Basket::getSessionBasket();
$data["jkshopSetting"] = \Jiri\JKShop\Models\Settings::instance();
return [
$this->property("idElementWrapperBasketComponent") => $this->renderPartial('@basket-0', $data)
];
但是我遇到了一个错误
"非静态方法Jiri\JKShop\Components\Basket::getSessionBasket() 不应该被静态调用”在第 30 行 /Applications/MAMP/htdocs/fidgycube.co/plugins/bbrand/shop/components/Shopextend.php
有什么帮助!? 谢谢
【问题讨论】:
调用静态 ==::
,在这种情况下不是指->
那我怎么称呼它?!
答案应该就在眼前,即使没有我的评论……这是 PHP OOP 的基础。 $data["basket"] = Basket::getSessionBasket();
被静态调用,错误消息明确指出 not 这样做。现在阅读我的第一条评论。
非常有帮助!你聪明,谢谢
【参考方案1】:
你需要先添加组件。
<?php namespace Bbrand\Shop\Components;
class Shopextend extends ComponentBase
public function init()
// Add component
$this->addComponent('\Jiri\JKShop\Components\Basket', 'basket', []);
【讨论】:
以上是关于组件十月 CMS 内的调用组件报错的主要内容,如果未能解决你的问题,请参考以下文章