問題点 #3141

メールフォームアカウント設定時、数字の前にアンダースコアが入ってると正常に稼働しなくなる

渕上 将和ほぼ5年前に追加. 12ヶ月前に更新.

ステータス:終了開始日:
優先度:通常期日:
担当者:-進捗率:

0%

カテゴリ:メール
対象バージョン:4.0.0

説明

メールフォームアカウント設定時、hoge_35 のように、数字の前にアンダースコアが入っていると、フィールド設定の際にエラーとなる。


履歴

#1 おさだ ゆうせいほぼ4年前に更新

こちらちょっと見てみたのですが、
models/datasources/dbo_source.phpのreadSchemaでの該当箇所で、ヤラれてしまってますね。。

$model = Inflector::classify(Inflector::singularize($table));

ここで、hoge_35 → Hoge35という風に変換されたあと、うまくテーブル名に戻れないようです。
普通なら hoge_aa → HogeAaになりますが。

そもそもこの名前付けって規約的にはどうなんでしょうか

対応するならば、

・新規向けには、
hoge_35風なら入力チェックで弾いてしまうとか

・既存(すでに登録してしまっている人)向けには
とりあえずアンダーバーの直後に数字が来ているモデルの場合は、
うまくその直前の_ だけは残してあげるとか、でしょうか。
例)$model には Hoge_35 が格納されるように
※cake本体のinflector.phpには触れないようにして。

あたりでしょうか。とりあえず考え事を共有させていただきました。

#2 江頭 竜二ほぼ4年前に更新

仕様的におかしいかもしれませんが、入力チェックで弾く方が、仕様がはっきりするので無難でしょうね。

#3 おさだ ゆうせいほぼ4年前に更新

了解です。
事象を未然に防ぐということで、その方向で考えます。

ご確認ありがとうございます。

#4 江頭 竜二ほぼ4年前に更新

  • プロジェクトbaserCMS から baserCMS機能要望 に変更
  • カテゴリ を削除 (メール)

一旦整理する為に機能要望プロジェクトに移動します。

#5 江頭 竜二ほぼ3年前に更新

  • 優先度急いで から 通常 に変更

#6 江頭 竜二ほぼ3年前に更新

  • トラッカーTODO から 問題点 に変更
  • プロジェクトbaserCMS機能要望 から baserCMS に変更
  • カテゴリメール にセット
  • 対象バージョン4.0.0 にセット
  • 開始日 を削除 (2012/10/10)

#7 江頭 竜二約1年前に更新

  • ステータス担当 から 解決 に変更

メールフォームのテーブルは、idを利用して命名する仕様に変更しました。

#8 江頭 竜二12ヶ月前に更新

  • ステータス解決 から 終了 に変更

他の形式にエクスポート: Atom PDF