だ。ログ。

開発とかスノボとかやきうとか。

CUBE3の配列に入った変数の存在確認

isset, isnull、この辺の変数が使えれば本当は楽だけど、Twigの仕様から気の利いたコードが見つからない。
今回自分がハマったのは、管理画面 > 受注検索一覧ページのOrderの変数内の顧客IDの存在有無。
要は以下

                            {% for Order in pagination %}
                                    <tr id="result_list_main__item--{{ Order.id }}">
                                        <td id="result_list_main__id_check--{{ Order.id }}" class="text-center"><input type="checkbox" id="check-{{ Order.id }}" data-id="{{ Order.id }}" name="ids{{ Order.id }}"></td>
                                        <td id="result_list_main__order_date--{{ Order.id }}">{{ Order.order_date|date_format }}</td>
						・
						・
						・
						・
                                    </tr>
                            {% endfor %}

Orderの中に顧客IDが存在するかを判定したい。
ただ、変数自体は既存のpaginationの中に存在している物で、Order自体はページにレンダリングする為のpaginationに集約されてしまっている。
会員の場合は Order.Customerの中に顧客情報が配列になって入っている。ただ非会員購入と言う事もあるので、Customerがnullでセットされている受注もあると言う所だ。

この場合、is_arrayなんかが使えれば便利なのだが、コードが無いので利用したのは以下

                            {% if Order.Customer.id is defined %}
                            ある
                            {% else %}
                            ない
                            {% endif %}

definedで値が定義されているかどうかを確認して、あれば処理を書くと言う形で対処した。
会員か非会員かと言う部分でメールのテンプレートを変えたいと言う要望が有り、一覧で表示させる為に実装。