blocs: トラブルシューティング & FAQ(エラーコード・ハマりどころ)
blocs: トラブルシューティング & FAQ(エラーコード・ハマりどころ)
BLOCS 実装でつまずきやすい点と対処です。エラーコードの詳細は No.2.14、属性・記法の仕様は No.2.1 を参照してください。本ナレッジは文書化済みの仕様・エラーコードに基づきます。
エラーコード別 早見
| 症状 | コード | まず確認すること | 詳細 |
|---|---|---|---|
| 画面表示時にキャッシュ作成エラー | B001 | storage/framework/views の書き込み権限。変えられない場合は BLOCS_CACHE_DIR を変更 |
No.2.14 |
| ループが回らない・変数名エラー | B002 | data-loop の変数名が正しいか($0list のような名前は無効) |
No.2.5 / No.2.14 |
| テンプレートが読み込めない | B003 | ファイル名・パスの誤り。存在チェックには data-exist を併用 |
No.2.6 / No.2.14 |
| 読み込み回数の上限超過 | B004 | data-include の入れ子が深すぎないか。必要なら BLOCS_INCLUDE_MAX(既定50)を増やす |
No.2.6 / No.2.14 |
data-convert が効かない |
B008 | 変換関数名のスペル。関数が存在するか | No.2.7 / No.2.14 |
data-filter が効かない |
B010 | フィルター関数名のスペル。関数が存在するか | No.2.8 / No.2.14 |
| 文字化け・表示崩れ | B011 | テンプレートの文字コードを UTF-8 に | No.2.14 |
data-assign の代入エラー |
B012 | 代入先の変数名が正しいか | No.2.3 / No.2.14 |
注: B005〜B007・B009 は現行バージョンでは未使用です(No.2.14)。
テンプレートのハマりどころ
変数が表示されない・タグが二重に出る
同じ内容をタグ記法とコメント記法で同時に書くことはできません(No.2.1)。どちらか一方にします。表示は data-val、省略記法は <!-- $name -->。属性への値設定は data-attribute か省略記法 :href=$url。
独自の data-◯◯ 属性を作っても動かない
BLOCS が解釈する data 属性は No.2.1 の一覧に限られ、一覧にない独自の動的制御属性を新規定義することはできません。HTML 標準の data 属性(例: Bootstrap の data-bs-toggle)はそのまま使えますが、BLOCS の制御用途では無視されます。
条件分岐の使い分けで迷う
「値が入っているか」で分けるなら data-exist / data-none、「条件式を満たすか」で分けるなら data-if / data-unless(No.2.4)。コメント記法で囲む場合は終了タグ(data-endif 等, No.2.1)の対応漏れに注意。
エラーメッセージや案内文が翻訳されない
data-notice / data-lang(エイリアス)は言語ファイルのキーを指定します(No.2.9)。キー名が言語ファイルに存在するか確認してください。
Blade と混在させたい
BLOCS は Laravel 標準の Blade と併用可能です(ハイブリッド利用, No.2.1)。必要な部分だけ .blocs.html にします(拡張子: Blade=*.blade.php / BLOCS=*.blocs.html)。
管理画面のハマりどころ
自動生成した画面に不要な機能が出る
定義ファイルから自動生成(No.3.1)した後、data- 単位ではなく機能単位で無効化します(No.3.2)。見た目の共通化は共通レイアウト(No.4.4)。
権限・ログインの分離
管理者の権限設定は No.3.3、ログイン画面を複数に分けるのは No.5.9。両者を組み合わせて運用を分けます。
関連ナレッジ
- No.2.1 テンプレートエンジン概要とデータ属性一覧
- No.2.14 エラーコード一覧
- No.7.1 逆引きレシピ集(やりたいことから引く)