OctoberCMS вызывает данные другого плагина в выпадающем списке текущего плагина

Я новичок в OctoberCMS и мне нравится, как он работает. В настоящее время я создал два плагина, называемых какТовары а такжеКатегории продукта, Я создал эти плагины, используяПлагин Builder это также очень хороший плагин для создания других плагинов с легкостью.

Теперь дело в том, что в моемКатегории продуктов плагин, у меня просто одно поле называетсяКатегория продукта и пользователь добавит столько категорий, сколько он / она хочет, и этот плагин работает отлично.

И по моемуТовары плагин, у меня есть поле под названиемКатегория продукта который является раскрывающимся полем, и я хочу, чтобы все те категории, которые я создал вКатегории продукта плагины соответственно, но почему-то я не могу реализовать эту функцию. Это то, что я пробовал до сих пор.

plugin.php (примочки \ technobrave \ продукты)

<?php namespace Technobrave\Products;

use System\Classes\PluginBase;
use technobrave\productcategory\Models\ProductCategory as ProductCategory;
use technobrave\products\Models\Product as ProductModel;

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

    public function registerSettings()
    {
    }

    public function boot()
    {
        ProductModel::extend(function($model){
            $model->hasOne['ProductCategory'] = ['technobrave\productcategory\Models\ProductCategory'];
        });
    }
}

product.php (Плагинов \ technobrave \ Продукты \ модели)

<?php namespace Technobrave\Products\Models;

use Model;

/**
 * Model
 */
class Product extends Model
{
    use \October\Rain\Database\Traits\Validation;

    /*
     * Validation
     */
    public $rules = [
    'category' => 'required',
    'product_brand' => 'required',
    'product_channel' => 'required',
    'product_type' => 'required',
    'client_name' => 'required',
    'project_name' => 'required',    
    'product_description' => 'required',
    'banner_image' => 'required',
    'product_images' => 'required',
    ];

    public $customMessages = [
                'category.required' => 'Please Select Product Category',
                'product_brand.required' => 'Please Select Product Brand',
                'product_channel.required' => 'Please Select Product Channel',
                'product_type.required' => 'Please Select Product Type',
                'client_name.required' => 'Please Enter Client Name',
                'project_name.required' => 'Please Enter Project Name',
                'product_short_description.required' => 'Please Enter Product Short Description',
                'product_description.required' => 'Please Enter Product Description',
                'banner_image.required' => 'Please select Product Banner Image',
                'product_images.required' => 'Please select Product Image(s)',


    ];

    /*
     * Disable timestamps by default.
     * Remove this line if timestamps are defined in the database table.
     */
    //public $timestamps = false;

    /**
     * @var string The database table used by the model.
     */
    public $table = 'technobrave_products_';
    public $settingsFields = 'fields.yaml';

    public $attachOne = [
            'banner_image' => 'System\Models\File'
    ];


    public $attachMany = [
            'product_images' => 'System\Models\File'
    ];

    public $belongsTo = [
        'ProductCategory'=> ['technobrave\productcategory\Models\ProductCategory']
    ];

    // Here i want my product dropdown categories to be dynamic 
    public function getCategoryOptions()
    { 
        echo '<pre>';
        print_r($ProductCategory);
        exit;
        //return array();
    }

}

Но я продолжаю получать фатальную ошибку, говорящую:

Неопределенная переменная: ProductCategory

Для этого конкретного кода, который я положил вproduct.php

echo '<pre>';
print_r($ProductCategory);
exit;

в вышеplugin.php файл у меня есть ниже код

use technobrave\productcategory\Models\ProductCategory as ProductCategory;

делая это, я пытаюсь получить все категории, которые я уже создал, и каким-то образом пытаюсь показать это в моем раскрывающемся списке.

Я знаю вOctoberCMS при создании плагинов мы можем иметь дело ссвязи логика (то есть hasMany, hasOne и т. д.), но сейчас я хочу добиться этого с помощью внешних плагинов. Я хочу добавить эти категории, которые будут заполнены в методеgetCategoryOptions() и я верну их в раскрывающемся списке.

Может ли кто-нибудь направить меня, если это возможно так, как я хочу?

Спасибо

Ответы на вопрос(0)

Ваш ответ на вопрос