0

PostモデルとモデルがTagあり、どちらもHABTM関係で正しく設定されています。posts_tagsまた、データベースには、命名規則に従って正しく名前が付けられたというテーブルがあります。

ただし、投稿と一緒にタグを保存する方法を一生理解することはできません。私の「投稿の追加」ページに私はこれを持っています:

<?php echo $this->Form->create('Post'); ?>
<?php echo $this->Form->input('Post.title'); ?>
<?php echo $this->Form->input('Post.body'); ?>
<?php echo $this->Form->input('Tag.name'); ?>
<?php echo $this->Form->input('Post.slug'); ?>
<?php echo $this->Form->end('Publish'); ?>

送信時にこのアクションを呼び出します。

public function add() {
    if($this->request->is('post')) {            
        if($this->Post->saveAll($this->request->data)) {
            $this->Session->setFlash('Post published!');
            $this->redirect('/');
        } else {
            $this->Session->setFlash('Post unable to be saved!');
        }
    }

    $this->set('pageTitle', 'Compose new blog post');
}

投稿は保存されますが、タグまたは投稿とタグの関係は保存されません。Cakeはエラーや警告を表示しません。Cakeに投稿と一緒にタグを保存させ、必要な関係を築くにはどうすればよいですか?

$this->request->data編集:これは、以下を使用してデータベースに保存されているもののダンプですsaveAll()

array(
    'Post' => array(
        'title' => 'Blog post',
        'body' => 'Testing this post',
        'slug' => 'Blog-post'
    ),
    'Tag' => array(
        'name' => 'test-tag'
    )
)
4

1 に答える 1

0

If your relationship for Tag to Post is hasMany, try changing:

<?php echo $this->Form->input('Tag.name'); ?>

to

<?php echo $this->Form->input('Tag.0.name'); ?>
于 2013-01-07T01:47:16.683 に答える