0

Cakephp をtinyint(1)asintではなく as として返すようにしようとしていboolます。データベース全体を小さな選択ボックス用に変更したくはありません。CakePHP に合わせるためだけです。

で次の行を見つけましたlib/Cake/Model/Datasource/Database/Mysql.php

if (($col === 'tinyint' && $limit == 1) || $col === 'boolean') {
        return 'boolean';
    }

この行のコメントは機能しませんでした。

誰でもこの問題の解決策を持っていますか?

4

6 に答える 6

2

フレームワークには触れないでください。問題のモデルの afterFind() メソッドをオーバーライドし、フィールドを適切な型にキャストします。

于 2012-09-19T14:50:32.987 に答える
1

Cake が入力をチェック ボックスに入れるのを止めるためにこれが必要ですか?

array('type'=>'text')でやるだけinput()

于 2012-09-19T14:52:37.650 に答える
0

変更を提供する予定がない限り、コアを変更しないでください。絶対に MySQL データソースをオーバーライドする必要がある場合は、ファイルをコピーすることで、コアを変更せずにオーバーライドできます。

から

/lib/Cake/Model/Datasource/Database/Mysql.php

の中へ

/app/Model/Datasource/Database/Mysql.php 

コピーに変更を加えます。Cake は、コアにあるものではなく、提供されたこのコピーを自動的に使用します。

これは最後の手段としてのみ行ってください。MySQL ドライバーの独自のコピーを維持する責任が発生し、自分でパッチを適用しない限り、セキュリティとパフォーマンスの更新を受け取ることはありません。

于 2012-09-19T22:33:04.013 に答える