데이터베이스의 값을 기반으로 사용자 정의 통화 포맷터 + 변환기를 만들었습니다. 이 내가 같은 동작을 수행 할 수있는이 위젯에서 DetailView
Yii2 GridView - 다른 속성의 값을 기반으로하는 속성 형식
use yii\helpers\Html;
use app\commands\AppHelper;
use yii\widgets\DetailView;
use app\models\Part;
<?= DetailView::widget([
'model' => $model,
'attributes' => [
// ...
[
'attribute' => 'price',
'label' => (new Part())->getAttributeLabel('price_user'),
'format' => [
'currency',
AppHelper::getUserCurrencyCode(),
[
'convert' => true,
'currencyFrom' => $model->currency->code,
'currencyTo' => AppHelper::getUserCurrencyCode(),
],
],
],
// ...
],
]) ?>
에서 사용하는 방법입니다 : 숫자 값이있을 때, 그것은 NULL
값, 보통 (안-설정)가있는 경우 인쇄 포맷됩니다 밖으로 ... DetailView
에 쉽게 접근 할 수있는 $model->currency->code
의 관계 데이터이지만 formatter
을 GridView
에 입력하는 방법을 알 수 없습니다.
데이터 형식을 GridView
(으)로하고 싶을 때 문제가 발생합니다.
는 난에 포맷터를 사용해야 열에 NULL
값을 허용하므로 이미 NULL
값이 존재하는 경우, YII이
<span class="not-set">(not set)</span>
같은 데이터를 송신하기 때문에
'value' => function ($data, $key, $index, $column) { return $data->value; }
를 사용하는 아이디어를 버린
중 하나이며 내 사용자 정의 값 (다른 열 값이 NULL
인 다른 값으로 간주)을 설정하고 모든 (not set)
값을 처리하는 데 문제가 없도록하고 싶습니다.
또 다른 이유는,주의 할 수 있듯이, 내가 특성 매개 변수에 'format' => ...
을 사용하면 해당 (not set)
값을 설정하기 전에 서식이 발생한다는 것입니다.
그래서 어쨌든 관계의 데이터 인 $model->currency->code
을 해당 포맷터로 전달하려고 생각했습니다.
아이디어가 있으십니까? 감사.