저는 10 월 CMS를 처음 접하고 그것이 작동하는 방식을 좋아합니다. 현재 이라는 두 개의 플러그인을 만들었습니다. 제품 및 제품 카테고리. 나는 다른 플러그인을 쉽게 만들 수있는 아주 좋은 플러그인 인 Builder Plugin을 사용하여 이러한 플러그인을 만들었습니다. OctoberCMS가 현재 플러그인의 드롭 다운에서 다른 플러그인의 데이터를 호출합니다.
는 이제 일이 내 제품 카테고리 플러그인에서, 나는 단순히 그/그녀가 원하는만큼의 카테고리를 추가합니다 제품 카테고리 및 사용자로라는 단일 필드가이 플러그인은 잘 작동합니다.그리고 내 제품에
플러그인, 나는 드롭 다운 필드 제품 카테고리로라는 필드가 있고 난 플러그인 각각 제품 카테고리에서 만든 모든 범주를 원하지만 어떻게 든 내가 드릴 수 없습니다 이 기능을 구현하십시오. 이것은 내가 지금까지 시도한 것이다.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();
}
}
하지만 치명적인 점점 계속입니다 오류 메시지 :
Undefin ED 변수 : ProductCategory
제가 위에서 Plugin.php 파일 Product.php
echo '<pre>';
print_r($ProductCategory);
exit;
넣어 특정 코드 제가
use technobrave\productcategory\Models\ProductCategory as ProductCategory;
이렇게 코드가 아래 이렇게함으로써, 나는 이미 만든 모든 범주를 얻으 려하고 어떻게 든 내 드롭 다운에 표시하려고합니다.
나는 플러그인을 작성하는 동안, 우리는 관계 로직 (즉, hasMany의 등 hasOne의) 처리 할 수 OctoberCMS 알고 있지만, 지금은 내가 외부 플러그인이 방법으로 달성하고자합니다. 해당 범주를 메서드 getCategoryOptions()
에 채우려면 추가하고 내 드롭 다운에 해당 범주를 반환합니다.
내가 원하는 방식으로 가능하면 누군가 가이드 할 수 있습니까?
감사합니다.