1

Codeigniter v2.1.2 で Datamapper v1.8.2 を使用しており、値を持つフィールドで実行されないように見える"get" ルールNULLがあります。モデルは次のとおりです。

class Page extends Datamapper {

    public $validation = array(
        'name' => array(
            'rules' => array('required'),
            'get_rules' => array('get_page_name')
        )
    );

    function _get_page_name($field)
    {
        $this->$field = 'TESTING '.$this->id;
    }

}

コード例:

$page = new Page();
foreach ($page->get() as $p) echo $p->name;

テーブルフィールドnameに空の文字列を含むnull以外の値がある場合、 のような出力で正常に動作TESTING 358しますが、値がNULL(このフィールドのデフォルト値) の場合、何も出力しません。を使用しても差はありませんget_iterated()

デフォルト値を変更することでこれを回避できると思いますが、何か間違っているのか、ドキュメントで何かを見逃しているのでしょうか、それともバグなのでしょうか? 問題が何であるかを知っている人はいますか?

また、CI フォーラムで Datamapper 1.8.2 をサポートするための適切なスレッドを誰かが教えてくれたら、それを見つけようとして、古いバージョンの DM のスレッドへのリンクの迷路に迷い込んでいます。

4

1 に答える 1

2

allow_nullこれを機能させるには、get_rules配列にを追加する必要があります。作成者の意図についてはわかりませんが、これがget_rules の実装方法です(ただし、ドキュメントには記載されていません)。

于 2012-08-06T06:30:44.780 に答える