0

10 월부터 플러그인을 만들려고합니다. 따라서 멍청한 질문이 올 수도 있지만 인터넷을 통해 검색하는 경우 실제 예제를 찾을 수 없습니다. 문서는 각 단위가 좋지만 "점들을 연결하는 것"이 ​​부족합니다. IMHO ... SimpleTree (올바른 방법이 아닐 수도 있음)를 사용하여 id와 관련된 이름을 표시하는 방법을 알아 냈습니다. 온10 월 CMS - 드롭 다운 : 드롭 다운에서 선택한 이름으로 ID 저장

https://www.screencast.com/t/WDYkfPdMQhttps://www.screencast.com/t/4NDc3HHDs

는 frmArea.yaml

fields: 
id: 
    label: Número 
    oc.commentPosition: '' 
    span: auto 
    disabled: 1 
    type: number 
area_id: 
    label: 'Parente de' 
    oc.commentPosition: '' 
    emptyOption: 'Sem valor' 
    span: auto 
    type: dropdown 
    nameFrom: area 
area: 
    label: Área 
    span: full 
    oc.commentPosition: '' 
    type: text 

Area.php

내가 부모에 대한 관계를 선택하지 않고 레코드를 만들 경우, 자신이 만든 얻을
<?php namespace JML\Gkb\Models; 

use Model; 

    /** 
* Model 
*/ 
class Area extends Model 


{ 
use \October\Rain\Database\Traits\Validation; 
use \October\Rain\Database\Traits\SimpleTree; 

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


/* 
* Validation 
*/ 
public $rules = [ 
]; 

/** 
* @var string The database table used by the model. 
*/ 
public $table = 'jml_gkb_areas'; 

//Relações 

public $hasMany = [ 
    'area_id' => 'JML\Gkb\Models\Area' 
]; 

/* 
public $belongsTo = [ 
    'area_id' => 'JML\Gkb\Models\Area' 
]; */ 

public function getAreaIdOptions(){ 
    return Area::all()->listsNested('area', 'id'); 
} 


} 

(사람 이미지). 부모를 선택하려고하면 영원히 저장됩니다 ... 부모가 부모를 선택하지 않고도 레코드를 업데이트하려고하면 저장할 때 동일하게 발생합니다.

시간이 경과하거나 캐시를 지울 때 적어도 잠시 후에 잠금 시간 초과를 반환하는 부모가없는 레코드를 만들 수 있습니다 ... 글쎄, 기다리는 시간이 300 초가되면 좀 더 기다리고 있습니다. 증분 뭔가 의미 db를 의미합니다 ... 나는 쿼리가 어디에 숫자가 필요하지만, 그것을 달성하는 방법을 모르겠 문자열을 보내는 것으로 의심 ...

누군가가 도움을 줄 수있는 곳으로 일부 관련 예제 또는 snipets 또는 방법을 찾으십시오 ??? 목록 위젯과 동일한 결과를 얻을 수 있습니까 ???

TIA

JL

답변

0

음, 해결 ... 그냥 ... 간단 ... 놀라운 작동 방식을 이해하기 위해 SimpleTree의 특성 코드를 파고

<?php namespace JML\Gkb\Models; 

사용 모델;

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

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


/* 
* Validation 
*/ 
public $rules = [ 
]; 

/** 
* @var string The database table used by the model. 
*/ 
public $table = 'jml_gkb_areas'; 

//Relações 

public function getAreaIdOptions(){ 

    return Area::all()->listsNested('area', 'id'); 

} 


} 

그냥 관계를 제거하고 그 ID로 관계를 가지고있는 열을 그대로

const PARENT_ID = 'area_id'; 

를 추가해야합니다.

누군가가 작성자의 목록 위젯에 대한 설명을 통해 'area_id'를 변경하는 방법에 대한 답변을 알고 있다면 언제든지 의견을 말하십시오.

TIA