找不到部分“ _widget.htm” ReportWidget OctoberCMS

时间:2018-12-12 10:48:53

标签: php octobercms

enter image description here

我尝试创建一个RecordWidget,以在OctoberCMS的仪表板上使用。 但是我正在努力渲染widget.htm。

文件系统的结构如下

plugins
 ds
  irental
   reportwidgets
    welcome
     assets
      css
     partials
      _widget.htm
    Welcome.php

_widget.htm:

<div class="report-widget widget-welcome">
    <h3>Test</h3>

        <div class="welcome-container">
            <div class="welcome-logo">
                <div class="oc-logo"></div>
            </div>
            <div class="welcome-message">

            </div>
        </div>

</div>

Welcome.php:

<?php namespace ds\Irental\ReportWidgets;

use Backend\Classes\ReportWidgetBase;

class Welcome extends ReportWidgetBase
{

    public function defineProperties() {
        return [
            'title' => [
                'title' => 'Test'
            ]
        ];
    }

    public function init() {

    }
    /**
     * Renders the widget.
     */
    public function render()
    {
        return $this->makePartial('widget');
    }
}

插件:

<?php namespace ds\Irental; 

use System\Classes\PluginBase;

class Plugin extends PluginBase
{
    public function registerComponents()
    {
    }

    public function registerSettings()
    {
    }

    /*
    * Register report widgets
    */
    public function registerReportWidgets()
    {
        return [
            'ds\Irental\ReportWidgets\Welcome' => [
                'label' => 'IRental',
                'context' => 'dashboard'
            ]
        ];
    }
}

我试图遵循octoberCMS上的文档。 https://octobercms.com/docs/backend/widgets#report-widgets 但是我不能使它工作。我会错过某些设置吗?

1 个答案:

答案 0 :(得分:1)

我想您的文件结构正在造成问题

  

错误的类位置[您当前的文件系统结构]

plugins
 ds
  irental
   reportwidgets
    welcome
     assets
      css
     partials
      _widget.htm
     Welcome.php     <- problem its inside `welcome` folder

因此,当您的Welcome.php较深时,它尝试从那里CLASS_LOCATION/welcome/partial/_widget.php进行搜索,但找不到它。 这里CLASS_LOCATION是welcome文件夹

  

正确的课堂位置[修订]

plugins
 ds
  irental
   reportwidgets
    welcome          <--
     assets            |
      css              |
     partials          |
      _widget.htm      |
    Welcome.php      <--  it need to be in same level

现在正确了,因此可以在适当的位置找到部分 CLASS_LOCATION/welcome/partial/_widget.php 这里CLASS_LOCATION是reportwidgets文件夹

  

更新

是的,似乎您使用的文件夹名称与类名称不同

enter image description here

  

它将选择基于类名的局部词,将其转换为更低的词,然后从类当前位置开始搜索。

如有疑问,请发表评论。