10 월 CMS에 대한 약간의 플러그인을 만들었지 만 이제는 설정 양식의 기본값을 설정하는 문제를 해결합니다.설정 양식에 기본값을 설정하면 10 월에 null이 반환됩니다.
내 플러그인 설정 (백엔드 -> 설정 탭 -> 내 플러그인 탭)에 데이터베이스 저장소를 사용했는데 기본 값을 설정할 수 없다는 점을 제외하면 매우 효과적입니다.
tabs:
fields:
reviews_border_color:
label: 'Field1'
span: left
tab: 'review_sticker'
required: 1
type: text
default: '#F2F2F2'
rating_star_size:
label: 'Field2'
span: left
tab: 'review_sticker'
required: 1
type: number
default: 14
나는이처럼 내 구성 요소의 설정을 검색 :
<?php namespace Codedge\TestPlugin\Components;
use Cms\Classes\ComponentBase;
use Codedge\TestPlugin\Models\Settings;
class TestComponent extends ComponentBase
{
public $starSize;
public $borderColor;
public function componentDetails()
{
return [
'name' => 'Test Component',
'description' => '...'
];
}
public function defineProperties()
{
return [];
}
public function init()
{
$this->starSize = Settings::get('rating_star_size'); // not giving a default value when empty, default is 14
$this->borderColor = Settings::get('reviews_border_color'); // not giving a default value when empty, default is '#F2F2F2'
}
}
나는 또한에서 두 번째 PARAM로, 기본값을 설정하려고
나는이 콘텐츠와fields.yaml
이
OctoberCMS docs에 제안 된
get()
방법 :
public function init()
{
$this->starSize = Settings::get('rating_star_size', 14); // returns null
$this->borderColor = Settings::get('reviews_border_color', '#F2F2F2'); // returns null
}
아무 것도 지정되지 않았거나 설정 양식 필드에 입력되지 않은 경우 신뢰할 수있는 기본값을 어떻게 설정할 수 있습니까?
는업데이트 : $this->fieldValues
에
/**
* Get a single setting value, or return a default value
*/
public function getSettingsValue($key, $default = null)
{
if (array_key_exists($key, $this->fieldValues)) {
return $this->fieldValues[$key];
}
return $default;
}
내 필드가 존재하는 system/behaviors/SettingsModel.php
의 방법 getSettingsValue()
의 설명을 발견 aroung 뒷조사 후
는 그것을 $default
을 반환하는 대신 비어 나에게 반환 값.
그래서 필드 값이 비어 있으면 기본값을 반환한다고 생각했는데 적용되지 않습니다.
제안 사항?