1

ここに多対多テーブルがあります。挿入された ID - BlogId を取得する必要があります。lastInsertId() は NULL 結果です。何か案は?

 $table = new Blog_Model_Blog_Table();
    $relTable = new Blog_Model_Relation_Table();
        $Object = $table->createRow();
        $form = new Blog_Form_Blog_Add($Object);
        if ($this->getRequest()->isPost() and $form->isValid($_POST)) {
            Blog_Model_Blog_Manager::add($Object);
            $blogId = $table->getAdapter()->lastInsertId();
            foreach ($_POST['category_id'] as $value) {
                $relTable->insert(array('id' => $blogId, 'category_id' => $value));
            }

ブログ_モデル_ブログ_マネージャー:

 class Blog_Model_Blog_Manager
{
    static function add(Blog_Model_Blog_Item &$Object)
    {
        $data = array(
            'time_add'              =>  time(),
            'time_edit'             =>  time(),
            'url_keyword'           =>  Ap_Filter_Translit::asURLSegment($Object->name)
        );
        $Object->setFromArray($data)
               ->save();
    }
4

1 に答える 1

1

私はmySql関数LAST_INSERT_ID()でそれを作ります:

$blogId = $table->fetchRow($table->select()->from($table)->columns('LAST_INSERT_ID() as idi'));
于 2013-03-29T11:50:09.037 に答える