注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

Handlebar ヘルパー

ヘルパーは、Handlebars テンプレート内から呼び出すことができる事前定義された関数です。ヘルパーには名前、パラメーター、および戻り値があります。たとえば、テンプレート {{add 5 var1}} は、整数(5)と var1 という名前の変数に対して add ヘルパーを呼び出します。var1 が 7 に設定されている場合、テンプレートは 12 に評価されます。

ヘルパーは、次のいずれかのカテゴリに分類されます。

  • 組み込みヘルパー - Handlebars ライブラリから
  • コアヘルパー - クエリとウィジェット内で利用可能
  • ウィジェットヘルパー - ウィジェット内でのみアクセス可能
  • Foundry ヘルパー - Foundry クエリ内でのみアクセス可能
  • SQL ヘルパー - SQL クエリ内でのみアクセス可能

ヘルパーは、Functions エディタでは使用できません。

組み込みヘルパー

次の Handlebars ライブラリからのヘルパーが利用可能です。各ヘルパーについては、Handlebars documentation を参照してください。

コアヘルパー

次のコアヘルパーは、クエリとウィジェット内で利用可能です。

toString

toString ヘルパーは、与えられた値を JavaScript String()関数を使用して文字列に変換します。

  • 文字列で toString を使用する
    • {{toString 'hello'}} は "hello" にレンダリングされます
  • 数値で toString を使用する
    • {{toString 1}} は "1" にレンダリングされます
  • 文字列配列で toString を使用する
    • {{toString variable}} は、コンテキストが { variable: ["hello", "world"] } の場合、"hello,world" にレンダリングされます
  • 数値配列で toString を使用する
    • {{toString variable}} は、コンテキストが { variable: [1, 2, 3] } の場合、"1,2,3" にレンダリングされます
  • オブジェクトで toString を使用する
    • {{toString variable}} は、コンテキストが { variable: {"hello": "world"} } の場合、"[Object Object]" にレンダリングされます

toNumber

toNumber ヘルパーは、与えられた値を JavaScript Number()関数を使用して数値に変換します。値が数値に変換できない場合、NaN を返します。

  • 数値で toNumber を使用する
    • {{toNumber 1}} は 1 にレンダリングされます
  • 数値を表す文字列で toNumber を使用する
    • {{toNumber '2'}} は 2 にレンダリングされます
  • 数値を表さない文字列で toNumber を使用する
    • {{toNumber 'hello'}} は NaN にレンダリングされます
  • 配列で toNumber を使用する
    • {{toNumber variable}} は、コンテキストが { variable: [1, 2, 3] } の場合、NaN にレンダリングされます
  • オブジェクトで toNumber を使用する
    • {{toNumber variable}} は、コンテキストが { variable: {"hello": "world"} } の場合、NaN にレンダリングされます

concat

concat ヘルパーは、任意の数の引数を取り、それらを JavaScript String() 関数で各引数を文字列に変換してから連結します。

  • 2 つの数値で concat を使用する
    • {{concat 1 2}} は "12" にレンダリングされます
  • 2 つの文字列と数値で concat を使用する
    • {{concat 'hello' 'world' 2}} は "helloworld2" にレンダリングされます
  • 2 つの文字列配列で concat を使用する
    • {{concat array1 array2}} は、コンテキストが { array1: ["hello", "world"], array2: ["again", "and again"] } の場合、"helloworldagainand again" にレンダリングされます
  • 3 つの数値とオブジェクトで concat を使用する
    • {{concat 1 2 3 variable}} は、コンテキストが { variable: {"hello": "world"} } の場合、"123[Object Object]" にレンダリングされます

substring

substring ヘルパーは、入力文字列(値)および開始および終了(オプション)を受け取り、JavaScript の substring() 関数に渡します。これにより、入力文字列の部分文字列を取得できます。

  • 文字列で substring を使用する
    • {{substring 'foo' 0 1}} は "f" にレンダリングされます
  • 終了よりも短い入力文字列を使用する場合、入力文字列が返されます
    • {{substring 'foo' 0 6}} は "foo" にレンダリングされます
  • 終了インデックスを指定しない場合
    • {{substring 'foo' 1}} は "oo" にレンダリングされます

contains

contains ヘルパーは、配列または文字列(値)と検索する値(searchValue)を受け取り、値が配列に含まれている場合は true を返し、そうでない場合は false を返します。これは、value.indexOf(searchvalue) !== -1 を呼び出すことで行われます。

  • 配列で contains を使用する
    • {{contains variable 3}} は、コンテキストが { variable: [1, 2, 3] } の場合、true にレンダリングされます
  • 文字列で contains を使用する
    • {{contains variable "hello"}} は、コンテキストが { variable: "hello world" } の場合、true にレンダリングされます

jsonParse

jsonParse ヘルパーは、JSON 文字列を入力として受け取り、JavaScript の JSON.parse 関数を使用して解析します。

  • JSON 文字列化された文字列で jsonParse を使用する
    • {{jsonParse '\"foo\"'}} は "foo" にレンダリングされます
  • JSON 文字列化された配列で jsonParse を使用する
    • {{jsonParse varA}} は、コンテキストが "[\"hello\",\"world\"]" の場合、["hello", "world"] にレンダリングされます
  • JSON 文字列化されたオブジェクトで jsonParse を使用する
    • {{jsonParse varA}} は、コンテキストが "{\"varA\":{\"hello\":\"world\",\"foo\":[\"bar\",\"baz\"]}}" の場合、{ varA: {"hello": "world", "foo": ["bar", "baz"]} } にレンダリングされます
  • 数値で jsonParse を使用する
    • {{jsonParse 123}} は、コンソールで "jsonParse: Error: value must be a string" というエラーが表示されます
  • 無効な JSON 文字列で jsonParse を使用する
    • {{jsonParse varA}} は、コンテキストが "[\"hello\"," の場合、コンソールで "jsonParse: SyntaxError: Unable to parse JSON string" というエラーが表示されます

jsonStringify

jsonStringify ヘルパーは、任意のオブジェクトを入力として受け取り、そのオブジェクトを JSON に変換して返します(JavaScript の JSON.stringify 関数に渡される)。

  • 文字列で jsonStringify を使用する
    • {{jsonStringify 'foo'}}"foo" にレンダリングされます(レンダリングされたテキストに二重引用符が含まれます)
  • オブジェクトで jsonStringify を使用する
    • {{jsonStringify varA}} は、コンテキストが { varA: {"hello": "world", "foo": ["bar", "baz"]} } の場合、{"hello":"world","foo":["bar","baz"]} にレンダリングされます(再び、レンダリングされたテキストに二重引用符が含まれます)

add

add ヘルパーは、2 つの数値を追加します。

  • 2 つの数値で add を使用する
    • {{add 20 5}} は 25 にレンダリングされます
  • 数値でない値で add を使用する
    • {{add 10 'abc'}} は、コンソールで "value must be a number" というエラーが表示されます

subtract

subtract ヘルパーは、最初の数値から 2 番目の数値を引きます。

  • 2 つの数値で subtract を使用する
    • {{subtract 20 5}} は 15 にレンダリングされます
  • 数値でない値で subtract を使用する
    • {{subtract 10 'abc'}} は、コンソールで "value must be a number" というエラーが表示されます

掛け算

掛け算ヘルパーは二つの数を掛けます。

  • 二つの数で掛け算を使用する
    • {{multiply 20 5}} は 100 に描画されます
  • 数値でない値で掛け算を使用する
    • {{multiply 10 'abc'}} はコンソールで "value must be a number" というエラーをスローします

割り算

割り算ヘルパーは最初の数を二番目の数で割ります。

  • 二つの数で割り算を使用する
    • {{divide 20 5}} は 4 に描画されます
  • 数値でない値で割り算を使用する
    • {{divide 10 'abc'}} はコンソールで "value must be a number" というエラーをスローします

最大値

最大値ヘルパーは与えられた数または数の配列から最大値を探します。

  • 数の配列で最大値を使用する
    • {{max variable}} のコンテキストは { variable: [1, 2, 3] } で、3 に描画されます
  • 数の配列と二つの数で最大値を使用する
    • {{max variable 12 15}} のコンテキストは { variable: [1, 2, 3] } で、15 に描画されます
  • 文字列で最大値を使用する
    • {{max 'hello' 123}} はコンソールで "value must be a number or a number array" というエラーをスローします
  • 無効な配列で最大値を使用する
    • {{max variable}} のコンテキストは { variable: ["hello", "world"] } で、 "value must be a number or a number array" というエラーをコンソールでスローします

最小値

最小値ヘルパーは与えられた数または数の配列から最小値を探します。

  • 数の配列で最小値を使用する
    • {{min variable}} のコンテキストは { variable: [1, 2, 3] } で、1 に描画されます
  • 数の配列と二つの数で最小値を使用する
    • {{min variable 6 10}} のコンテキストは { variable: [1, 2, 3] } で、1 に描画されます
  • 文字列で最小値を使用する
    • {{min 'hello' 123}} はコンソールで "value must be a number or a number array" というエラーをスローします
  • 無効な配列で最小値を使用する
    • {{min variable }} のコンテキストは { variable: ["hello", "world"] } で、 "value must be a number or a number array" というエラーをコンソールでスローします

等しい

等しいヘルパーは二つの数または文字列を比較し、それらが等しいかどうかを確認します

  • 二つの数で等しいを使用する

    • {{eq 1 1}} は true に描画されます
  • 数または文字列でない値、または異なるタイプの値で等しいを使用する

    • {{eq [1, 2] 5}} はコンソールで "type mismatch" というエラーをスローします
  • if ブロック内で等しいを使用する

    {{#if (eq name 'Steven')}}
      Your name is Steven.
    {{else}}
      Your name is not Steven.
    {{/if}}
    

    のコンテキストは { name: "Steven" } で、 "Your name is Steven." に描画されます。

異なる

異なるヘルパーは二つの数または文字列を比較し、それらが異なるかどうかを確認します

  • 二つの数で異なるを使用する
    • {{ne 1 1}} は false に描画されます
  • 数または文字列でない値、または異なるタイプの値で異なるを使用する
    • {{ne [1, 2] 5}} はコンソールで "type mismatch" というエラーをスローします

より小さい

より小さいヘルパーは二つの数または文字列を比較し、最初のものが二番目のものより小さいかどうかを確認します。

  • 二つの数でより小さいを使用する
    • {{lt 1 2}} は true に描画されます
  • 数または文字列でない値、または異なるタイプの値でより小さいを使用する
    • {{lt [1, 2] 5}} はコンソールで "type mismatch" というエラーをスローします

以下

以下ヘルパーは二つの数または文字列を比較し、最初のものが二番目のもの以下かどうかを確認します。

  • 二つの数で以下を使用する
    • {{le 1 1}} は true に描画されます
  • 数または文字列でない値、または異なるタイプの値で以下を使用する
    • {{le [1, 2] 5}} はコンソールで "type mismatch" というエラーをスローします

より大きい

より大きいヘルパーは二つの数または文字列を比較し、最初のものが二番目のものより大きいかどうかを確認します。

  • 二つの数でより大きいを使用する
    • {{gt 2 1}} は true に描画されます
  • 数または文字列でない値、または異なるタイプの値でより大きいを使用する
    • {{gt [1, 2] 5}} はコンソールで "type mismatch" というエラーをスローします

以上

以上ヘルパーは二つの数または文字列を比較し、最初のものが二番目のもの以上かどうかを確認します。

  • 二つの数で以上を使用する
    • {{ge 1 1}} は true に描画されます
  • 数または文字列でない値、または異なるタイプの値で以上を使用する
    • {{ge [1, 2] 5}} はコンソールで "type mismatch" というエラーをスローします

encodeURI

encodeURIヘルパーは与えられた文字列を JavaScript encodeURI() 関数でエンコードします。

  • 文字列でencodeURIを使用する
    • {{encodeURI 'hello world?'}} は "hello%20world?" に描画されます
  • 文字列でない値でencodeURIを使用する
    • {{encodeURI variable}} のコンテキストは { variable: [1, 2, 3] } で、コンソールで "value must be a string" というエラーをスローします

encodeURIComponent

encodeURIComponentヘルパーは与えられた文字列を JavaScript encodeURIComponent() 関数でエンコードします。

  • 文字列でencodeURIComponentを使用する
    • {{encodeURIComponent 'hello world?'}} は "hello%20world%3F" に描画されます
  • 文字列でない値でencodeURIを使用する
    • {{encodeURIComponent variable}} のコンテキストは { variable: [1, 2, 3] } で、コンソールで "value must be a string" というエラーをスローします

getSelectedDisplayValue

getSelectedDisplayValueヘルパーは、与えられた値とselectedValueからdisplayValuesのselectedDisplayValueを取得します。

  • 値、displayValues、selectedValueでgetSelectedDisplayValueを使用する
    • {{getSelectedDisplayValue values displayValues selectedValue}} のコンテキストは { values: [1, 2, 3], displayValues: ["a", "b", "c"], selectedValue: 2 } で、 ["b"] を返します
  • 値またはdisplayValuesが配列でない場合にgetSelectedDisplayValueを使用する
    • {{getSelectedDisplayValue values displayValues selectedValue}} のコンテキストは { values: "hello", displayValues: ["a", "b", "c"], selectedValue: 2 } で、コンソールで "values must be an array" というエラーをスローします
  • selectedValueが値に含まれていない場合にgetSelectedDisplayValueを使用する
    • {{getSelectedDisplayValue values displayValues selectedValue}} のコンテキストは { values: [1,2,3], displayValues: ["a", "b", "c"], selectedValue: 4 } で、コンソールで "selectedValue '4' is not in values" というエラーをスローします

getSelectedDisplayValues

getSelectedDisplayValuesヘルパーは、与えられた値とselectedValuesからdisplayValuesのselectedDisplayValuesを取得します。

  • 値、displayValues、selectedValuesでgetSelectedDisplayValuesを使用する
    • {{getSelectedDisplayValues values displayValues selectedValues}} のコンテキストは { values: [1, 2, 3], displayValues: ["a", "b", "c"], selectedValues: [2, 3] } で、 ["b", "c"] を返します
  • 値、displayValues、またはselectedValuesが配列でない場合にgetSelectedDisplayValuesを使用する
    • {{getSelectedDisplayValues values displayValues selectedValues}} のコンテキストは { values: "hello", displayValues: ["a", "b", "c"], selectedValues: 2 } で、コンソールで "values must be an array" というエラーをスローします
  • いくつかのselectedValueが値に含まれていない場合にgetSelectedDisplayValuesを使用する
    • {{getSelectedDisplayValues values displayValues selectedValues}} のコンテキストは { values: [1,2,3], displayValues: ["a", "b", "c"], selectedValues: [4] } で、コンソールで "selectedValue '4' is not in values" というエラーをスローします

lookup

lookupヘルパーは組み込みの Handlebars lookup のバリエーションを使用し、Handlebarsのドキュメンテーションで説明されているように使用できます。また、下記の例のように、Slateのlookupバリエーションではプロパティの長いチェーンを説明できます。

  • {{lookup a "b" "c"}} のコンテキストは { a: { b: { c: "test" } } } で、 "test" を返します

and

and ヘルパーは、提供されたブール引数に対して AND (&&) 論理比較を実行します。少なくとも二つの引数が必要です。

  • {{and var1 var2}} のコンテキストは { var1: "true", var2: "false" } で、 "false" を描画します

or

or ヘルパーは、提供されたブール引数に対して OR (||) 論理比較を実行します。少なくとも二つの引数が必要です。

  • {{or var1 var2}} のコンテキストは { var1: "true", var2: "false" } で、 "true" を描画します

not

not ヘルパーは、提供されたブール引数に対して NOT (!) 論理比較を実行します。単一の引数にのみ適用できます。

  • {{not var}} のコンテキストは { var : "true" } で、 "false" を描画します

ウィジェット ヘルパー

ウィジェット内で以下のウィジェットヘルパーが利用可能です。

formatNumber

formatNumber ヘルパーは、与えられた数値を Numeral.js ライブラリを使用して文字列にフォーマットします。値は数値であり、フォーマットは文字列である必要があります。

  • 数値に formatNumber を使用する
    • {{formatNumber 1400 '0,0'}} は "1,400" にレンダリングされます
      • 数値のフォーマットの例については、Numeral.js ライブラリを参照してください。
  • 数値でない値に formatNumber を使用する
    • {{formatNumber 'abc' '0,0'}} はコンソールで "value must be a number" というエラーが発生します
  • 無効なフォーマット(文字列でないフォーマット)で formatNumber を使用する
    • {{formatNumber 1400 variable}} でコンテキストが { variable: ["hello": "world"] } の場合、コンソールで "format must be a string" というエラーが発生します

formatDate

formatDate ヘルパーは、与えられた日付を Moment.js ライブラリを使用して文字列にフォーマットします。値は日付であり、フォーマットは文字列である必要があります。

  • 文字列に formatDate を使用する
    • {{formatDate '2014-1-2' 'MM/DD/YYYY'}} は "01/02/2014" にレンダリングされます
      • 日付のフォーマットの例については、Moment.js ライブラリを参照してください。
  • 数値に formatDate を使用する
    • {{formatDate 1237705200000 'YYYY-MM-DD'}} は "2009-03-22" にレンダリングされます
      • 日付のフォーマットの例については、Moment.js ライブラリを参照してください。
  • 無効な日付文字列の値に formatDate を使用する
    • {{formatDate 'some string' 'YYYY-MM-DD'}} はコンソールで "value must be a valid date" というエラーが発生します
  • 無効なフォーマット(文字列でないフォーマット)で formatDate を使用する
    • {{formatDate '2014-1-2' variable}} でコンテキストが { variable: ["hello": "world"] } の場合、コンソールで "format must be a string" というエラーが発生します

Foundry ヘルパー

以下のヘルパーは HttpJson Foundry クエリ内で利用可能です。

joinParams

joinParams ヘルパーは、パラメーターの配列を取り、シングルクォートされたパラメーターを , で結合します。

  • 文字列の配列で joinParams を使用する
    "SELECT * FROM `table1` WHERE name IN ({{joinParams names}})"
    
    コンテキストが { names: ["Bill", "John J.", "Sam's", "Jay"] } の場合、以下のようにレンダリングされます
    "SELECT * FROM `table1` WHERE name IN ('Bill', 'John J.', 'Sam\'s', 'Jay')"
    
  • 文字列で joinParams を使用する
    "SELECT * FROM table1 WHERE name IN ({{joinParams name}});"
    
    コンテキストが { name: "Bill" } の場合、"parameters must be an array in joinParams helper" というエラーが発生します

SQL ヘルパー

以下の SQL ヘルパーは SQL クエリ内で利用可能です。HttpJson Foundry クエリは Spark SQL 構文を使用していることに注意してくださいが、これらのヘルパーはそれらのクエリでは使用しないでください。

alias

alias ヘルパーは、エイリアス列またはテーブル名を取ります。column および table ヘルパーは、値を情報スキーマと照らし合わせます。ただし、一時的な列名やテーブル名はスキーマに存在しません。alias ヘルパーは、ユーザーが一時的な列名やテーブル名を登録する方法を提供します。名前が定数値でない場合、エラーが発生します。

  • エイリアス列名を登録するために alias を使用する

    "SELECT id as {{alias 'alias_column_name'}} FROM table1 ORDER BY {{column aliasColumnName}};"
    

    コンテキストが { aliasColumnName: "alias_column_name" } の場合、以下のようにレンダリングされます

    "SELECT id as alias_column_name FROM table1 ORDER BY alias_column_name;"
    
  • 大文字と小文字を区別するエイリアス列名を登録するために alias を使用する

    "SELECT id as "{{alias 'Alias Column Name'}}" FROM table1 ORDER BY "{{column aliasColumnName}}";"
    

    コンテキストが { aliasColumnName: "Alias Column Name" } の場合、以下のようにレンダリングされます

    "SELECT id as "Alias Column Name" FROM table1 ORDER BY "Alias Column Name";"
    
  • エイリアステーブル名を登録するために alias を使用する

    "SELECT id as "{{alias 'Alias Column Name'}}" FROM table1 ORDER BY "{{column aliasColumnName}}";"
    

    コンテキストが { aliasColumnName: "Alias Column Name" } の場合、以下のようにレンダリングされます

    "SELECT id as "Alias Column Name" FROM table1 ORDER BY "Alias Column Name";"
    
  • 定数でない値で alias を使用する場合:

    "SELECT id as {{alias aliasColumnName}} FROM table1 ORDER BY {{table aliasColumnName}};"
    

    コンテキストが { aliasColumnName: "alias_column_name" } の場合、"Only constant parameters are not allowed..." というエラーが発生します

schema

schema ヘルパーは、スキーマ名とホワイトリスト名のリストを取ります。スキーマ名がホワイトリスト名のリストに含まれていることを確認し、スキーマ名をデータソースの情報テーブルと照らし合わせます。スキーマ名がホワイトリスト名のリストまたは情報テーブルに存在しない場合、エラーが発生します。

  • 有効なスキーマ名で schema を使用する
    "SELECT * FROM {{schema schemaName 'schema1' 'schema2'}}.table1;"
    
    コンテキストが { schemaName: "schema1" } の場合、以下のようにレンダリングされます
    "SELECT * FROM schema1.table1;"
    
  • ホワイトリスト名のリストにないスキーマ名で schema を使用する
    "SELECT * FROM {{schema schemaName 'schema1' 'schema2'}}.table1;"
    
    コンテキストが { schemaName: "schemaNameNotInList" } の場合、以下のようにレンダリングされます
    "SELECT FROM schemaNameNotInList.table1"
    
    実行時に "schema name must be in the list of the whitelist names." というエラーが発生します。
  • ホワイトリスト名のリストに参照があるスキーマ名で schema を使用する
    "SELECT * FROM {{schema schemaName 'schema1' 'schema2' templatizedName}}.table1;"
    
    コンテキストが { schemaName: "schema1", templatizedName: "anotherSchemaName" } の場合、以下のようにレンダリングされます
    "SELECT * FROM schema1.table1;"
    
    実行時に "References ['templatizedName'] cannot be dynamic for security reasons." というエラーが発生します。
  • 無効なスキーマ名で schema を使用する
    "SELECT * FROM {{schema schemaName 'invalidSchema1'}}.table1;" 
    
    コンテキストが { schemaName: "invalidSchema1" } の場合、以下のようにレンダリングされます
    "SELECT * FROM invalidSchema1.table1;"
    
    実行時に "Invalid schema name 'invalidSchema1.'" というエラーが発生します。

table

table ヘルパーは、テーブル名とホワイトリスト名のリストを受け取ります。テーブル名がホワイトリスト名のリストに含まれていることを確認し、テーブル名をデータソースの情報テーブルと照らし合わせます。テーブル名がホワイトリスト名のリストや情報テーブルに存在しない場合、エラーが発生します。

  • 有効なテーブル名で table を使用する
    "SELECT * FROM {{table tableName 'table1' 'table2'}};"
    
    コンテキストが { tableName: "table1" } の場合、次のようにレンダリングされます。
    "SELECT * FROM table1;"
    
  • ホワイトリスト名のリストにないテーブル名で table を使用する
    "SELECT * FROM {{table tableName 'table1' 'table2'}};"
    
    コンテキストが { tableName: "tableNameNotInList" } の場合、次のようにレンダリングされます。
    "SELECT * FROM tableNameNotInList;"
    
    そして、実行時に "table name must be in the list of the whitelist names." というエラーがスローされます。
  • ホワイトリスト名のリストにリファレンスがあるテーブル名で table を使用する
    "SELECT * FROM {{table tableName 'table1' 'table2' templatizedName}};"
    
    コンテキストが { tableName: "table1", templatizedName: "anotherTableName" } の場合、次のようにレンダリングされます。
    "SELECT * FROM table1;"
    
    そして、実行時に "References ['templatizedName'] cannot be dynamic for security reasons." というエラーがスローされます。
  • 無効なテーブル名で table を使用する
    "SELECT * FROM {{table tableName 'invalidTable1'}};"
    
    コンテキストが { tableName: "invalidTable1" } の場合、次のようにレンダリングされます。
    "SELECT * FROM invalidTable1;"
    
    そして、実行時に "Invalid table name 'invalidTable1'." というエラーがスローされます。

column ヘルパーは、列名、または列名のリストを受け取り、データソースの情報テーブルと照らし合わせます。列名が情報テーブルに存在しない場合、エラーが発生します。

  • 有効な列名で column を使用する
    "SELECT {{column columnName}} FROM table1;"
    
    コンテキストが { columnName: "column1" } の場合、次のようにレンダリングされます。
    "SELECT 行1 FROM table1;"
    
  • 大文字と小文字を区別する有効な列名で column を使用する
    "SELECT "{{column columnName}}" FROM table1;"
    
    コンテキストが { columnName: "Column 1" } の場合、"SELECT "Column 1" FROM table1;" にレンダリングされます。
  • 有効な列名のリストで column を使用する
    "SELECT {{column columnNames}} FROM table1;"
    
    コンテキストが { columnNames: ["column1", "column2"] } の場合、次のようにレンダリングされます。
    "SELECT 行1, 行2 FROM table1;"
    
  • 無効な列名で column を使用する
    "SELECT {{column columnName}} FROM table1;"
    
    コンテキストが { columnName: "invalidColumn1" } の場合、次のようにレンダリングされます。
    "SELECT invalidColumn1 FROM table1;"
    
    そして、"Invalid column name 'invalidColumn1'." というエラーがスローされます。

param

param ヘルパーは、パラメーターまたはパラメーターのリストを受け取ります。通常モードでは、パラメーターをリストに格納し、疑問符を返します。プレビューモードでは、パラメーターを返します。注:プレビューモードは、レンダリングされたクエリをプレビューし、デバッグするために使用されます。

  • 通常モードで数値を持つ param を使用する
    "SELECT * FROM table1 WHERE id = {{param parameter1}};"
    
    コンテキストが { parameter1: 1234 } の場合、次のようにレンダリングされます。
    "SELECT * FROM table1 WHERE id = ?;"
    
    パラメーターのリストは [1234] です。
  • 通常モードで文字列のリストを持つ param を使用する
    "SELECT * FROM table1 WHERE text IN ({{param parameter1}});"
    
    コンテキストが { parameter1: ["some", "text"] } の場合、次のようにレンダリングされます。
    "SELECT * FROM table1 WHERE text IN (?, ?);"
    
    パラメーターのリストは ["some", "text"] です。
  • 通常モードで toString ヘルパーを使用して数値を持つ param を使用する
    "SELECT * FROM table1 WHERE text = {{param (toString parameter1)}};"
    
    コンテキストが { parameter1: 1234 } の場合、次のようにレンダリングされます。
    "SELECT * FROM table1 WHERE text = ?;"
    
    パラメーターのリストは ["1234"] です。
  • 通常モードで toNumber ヘルパーを使用して文字列を持つ param を使用する
    "SELECT * FROM table1 WHERE text = {{param (toNumber parameter1)}};"
    
    コンテキストが { parameter1: "1234" } の場合、次のようにレンダリングされます。
    "SELECT * FROM table1 WHERE text = ?;"
    
    パラメーターのリストは [1234] です。
  • 通常モードで concat ヘルパーを使用して LIKE 操作を持つ param を使用する
    "SELECT * FROM table1 WHERE text LIKE {{param (concat '%' parameter1 '%')}};"
    
    コンテキストが { parameter1: "some text" } の場合、次のようにレンダリングされます。
    "SELECT * FROM table1 WHERE text = ?;"
    
    パラメーターのリストは ["%some text%"] です。
  • プレビューモードで数値を持つ param を使用する
    "SELECT * FROM table1 WHERE id = {{param parameter1}};"
    
    コンテキストが { parameter1: 1234 } の場合、次のようにレンダリングされます。
    "SELECT * FROM table1 WHERE id = 1234;"
    
  • プレビューモードで文字列のリストを持つ param を使用する
    "SELECT * FROM table1 WHERE text IN ({{param parameter1}});"
    
    コンテキストが { parameter1: ["some", "text"] } の場合、次のようにレンダリングされます。
    "SELECT * FROM table1 WHERE text IN ('some', 'text');"
    
  • 未定義のパラメーターを持つ param を使用する
    "SELECT * FROM table1 WHERE id = {{param parameter1}};"
    
    コンテキストが { } の場合、"Error: parameter value cannot be null in param helper" というエラーがスローされます。
  • null を含む配列を持つ param を使用する
    "SELECT * FROM table1 WHERE text IN ({{param parameter1}});"
    
    コンテキストが { parameter: ["some", null] } の場合、"Error: parameter array cannot have null value in param helper" というエラーがスローされます。