<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] #### 定義 枚舉類型是一種特殊的標量,限于特定的允許值集合。 枚舉類型是 GraphQL\Type\Definition\EnumType (或它的子類) 的實例,它的構造函數接收數組配制參數: ~~~ $episodeEnum = new EnumType([ 'name' => 'Episode', 'description' => 'One of the films in the Star Wars Trilogy', 'values' => [ 'NEWHOPE' => [ 'value' => 4, 'description' => 'Released in 1977.' ], 'EMPIRE' => [ 'value' => 5, 'description' => 'Released in 1980.' ], 'JEDI' => [ 'value' => 6, 'description' => 'Released in 1983.' ], ] ]); ~~~ 上面的例子用的是內聯樣式定義 EnumType,同樣你也可以使用繼承的方式定義。 #### 配制項 |名稱 |類型 |描述 | | --- | --- | --- | | name | `string` | `必填` 類型名字 | | description | `string` | 類型的純文本描述(例如通過GraphQL自動生成文檔) | | values | `array` | 枚舉項列表,請參閱下面每個條目的預期結構 | #### 值配制 values數組的每個條目依次接受以下選項: | 名稱 | 類型 | 描述 | | --- | --- | --- | | name | `string` | `必填` 枚舉項的名字,當沒有指明時,則取數組key值 | | value | `mixed` | 你應用中 枚舉項的內部表示,可以是任意值(包括 復雜對象 及 callbacks) | | description | `string` | 類型的純文本描述(例如通過GraphQL自動生成文檔) | | deprecationReason | `string` | 該枚舉值棄用原因的描述信息,當不為空時,內省查詢 將不返回該字段 (除非includeDeprecated: true,詳情請看 內省機制) | 當枚舉項的內部表示(即枚舉項對應的value值)與該名稱相同時,可以使用如下 ~~~ $episodeEnum = new EnumType([ 'name' => 'Episode', 'description' => 'One of the films in the Star Wars Trilogy', 'values' => ['NEWHOPE', 'EMPIRE', 'JEDI'] ]); ~~~ 等同于: ~~~ $episodeEnum = new EnumType([ 'name' => 'Episode', 'description' => 'One of the films in the Star Wars Trilogy', 'values' => [ 'NEWHOPE' => 'NEWHOPE', 'EMPIRE' => 'EMPIRE', 'JEDI' => 'JEDI' ] ]); ~~~ 等同于 ~~~ $episodeEnum = new EnumType([ 'name' => 'Episode', 'description' => 'One of the films in the Star Wars Trilogy', 'values' => [ 'NEWHOPE' => ['value' => 'NEWHOPE'], 'EMPIRE' => ['value' => 'EMPIRE'], 'JEDI' => ['value' => 'JEDI'] ] ]); ~~~ 等同于完整形式 ~~~ $episodeEnum = new EnumType([ 'name' => 'Episode', 'description' => 'One of the films in the Star Wars Trilogy', 'values' => [ ['name' => 'NEWHOPE', 'value' => 'NEWHOPE'], ['name' => 'EMPIRE', 'value' => 'EMPIRE'], ['name' => 'JEDI', 'value' => 'JEDI'] ] ]); ~~~ #### 字段解析 **對象字段類型是枚舉類型** 當對象字段的類型是枚舉類型時,字段解析器(resolve)期望返回相應的枚舉項的內部表示(即枚舉項的value值),graphql-php然后將該值序列化為名稱以包含在響應中。即最后返給客戶端的字段值是枚舉項名稱(如上面的 NEWHOPE 字符串而非真實值 4)。 **當枚舉被使用作為輸入類型** 當枚舉類型作為輸入類型使用時(如字段參數 field argument),GraphQL會將枚舉輸入視為名稱,并將其轉成對應的值 ( value ) ,然后傳遞給相應的處理程序。這里說明在client查詢體中,傳遞的字段參數是名稱而非對應的值,且不能加引號,如: ~~~ $heroType = new ObjectType([ 'name' => 'Hero', 'fields' => [ 'appearsIn' => [ 'type' => Type::boolean(), 'args' => [ 'episode' => Type::nonNull($enumType) ] 'resolve' => function($_value, $args) { return $args['episode'] === 5 ? true : false; } ] ] ]) ~~~ 客戶端查詢語句 ~~~ fragment on Hero { appearsInNewHope: appearsIn(episode:NEWHOPE) } ~~~ **注意** 如果字段類型是枚舉類型,且其枚舉項對應的值(value)是標量(可以是數組),字段解析器(resolve)的值返回類型不同, 只要最終 == 比較相等,則不會出錯;但如果枚舉項對應的值是對象類型,則會做 === 比較。比如 枚舉項值是 1 而 resolve最終返回字符串 "1",不會出錯。而如果字段類型是ObjectArray(等其他對象),則始終出錯,除非它們引用同一個對象。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看