2016-11-05 75 views
0

試圖擴展現有的插件組件 需要增加一個功能,但使用插件的方法調用組件提供了一個錯誤

這裏什麼我:

<?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()」,位於/Applications/MAMP/htdocs/fidgycube.co/plugins/bbrand/shop/components的第30行/Shopextend.php

任何幫助!? 謝謝

+0

調用static =='::',在這種情況下並不意味着' - >' – Xorifelse

+0

所以我該怎麼稱呼它? – aleXela

+0

答案應該是盯着你,即使沒有我的評論...這是PHP OOP的基礎知識。 '$ data [「basket」] = Basket :: getSessionBasket();'被靜態調用,錯誤信息明確指出**不能**。現在閱讀我的第一條評論。 – Xorifelse

回答

0

您需要先添加組件。

<?php namespace Bbrand\Shop\Components; 
class Shopextend extends ComponentBase 
{ 
    public function init() 
    { 
     // Add component 
     $this->addComponent('\Jiri\JKShop\Components\Basket', 'basket', []); 
    } 
} 
+0

希望它能工作。謝謝 – aleXela