パレットCMS固有のコンテキスト
resolve_relations
指定したモジュールのレコードに対し、外部キーのリレーションを再帰的に解決します。
ルックアップ先のレコードや、そのレコードに紐づく項目・所有者などを取得できます。
シグネチャ:
resolve_relations( module: string, record: object, depth: int ): object
利用例:
@code: let resolved = resolve_relations('item', record, 1);
{{ resolved.owner_id.name }}
preload_relations
指定したモジュールのレコードの配列に対し、使用するリレーションを宣言して、まとめて解決します。
ルックアップ先のレコードや、そのレコードに紐づく項目・所有者などを取得できます。
シグネチャ:
preload_relations( module: string, records: object[], paths: string[] ): object[]
paths のネストは . でつなぎます。
利用例:
@code: let rows = preload_relations('item', records, ['owner_id', 'shop_id.area_id']);
@for ( let row in rows )
{{ row.owner_id.name }} / {{ row.shop_id.area_id.name }}
@endfor
リレーションに関するコンテキストの違い
resolve_relations は、1レコードを指定した深さまですべて展開します。
一方、preload_relations は、レコードの配列から宣言したパスのみを展開します。
一覧コンテンツのように同じリレーションを何度もたどる場面では、関連するレコードを先にまとめて取得する preload_relations を使うと、処理負荷が軽減されます。
column_for
指定したシート内の任意項目の設定情報を取得します。
シグネチャ:
column_for( module: string, sheet_id: string, field_id: string ): object
※field_id は任意項目の ID です
利用例:
{{ column_for('item', 'sheet_id_abc', 'city').name }}
columns_for
指定したシートの全ての項目設定情報を取得します。
シグネチャ:
columns_for( module: string, sheet_id: string ): object
利用例:
let fields = columns_for('item', 'sheet_id_xyz');
{{ fields.city.label }}
fields_of
field_sheet を指定し、条件に一致するフィールドを配列で取得します。条件を省略すると全件取得します。
シグネチャ:
fields_of( field_sheet: string, params?: object ): object[]
利用例:
@for ( let field in fields_of(column('city').field_sheet, {prefecture: '東京都'}) )
{{ field.name.value }}
@endfor
field_by_id
field の ID から整形済みのフィールド情報を取得します。
シグネチャ:
field_by_id( id: string ): object
利用例:
{{ field_by_id(record.city.key).name }}
field_by_value_id
field_val の ID から整形済みのフィールド情報を取得します。
シグネチャ:
field_by_value_id( value_id: mixed ): object
利用例:
{{ field_by_value_id(value('prefecture')).name_en }}
field_by_value_char
指定カラムと値をもとに、整形済みのフィールド情報を取得します。
シグネチャ:
field_by_value_char( column: object, value: string ): object
利用例:
{{ field_by_value_char(column('prefecture'), '滋賀県').name_en }}
field_value_id
指定カラムのフィールド値の ID を取得します。
シグネチャ:
field_value_id( column: object, data_id: string ): mixed
利用例:
let prefecture_id = field_value_id(column('prefecture'), 'field_data_id');
current_account
現在ログインしているアカウントのメタデータを返します。
アカウント種別や任意項目も含みます。
利用例:
{{ current_account.label }}
{{ current_account.record.age }}
google_recaptcha_site_key
Google reCAPTCHA のサイトキーを返します。