diff --git a/ja/orm/behaviors/tree.rst b/ja/orm/behaviors/tree.rst index 6f62d6e220..20a5a8ecfd 100644 --- a/ja/orm/behaviors/tree.rst +++ b/ja/orm/behaviors/tree.rst @@ -67,6 +67,16 @@ CakePHP は内部構造を構築することができます。 :: echo $category->name . "\n"; } +条件を渡す必要がある場合は、通常通り:: + + $descendants = $categories + ->find('children', ['for' => 1]) + ->where(['name LIKE' => '%Foo%']); + + foreach ($descendants as $category) { + echo $category->name . "\n"; + } + 代わりに、各ノードの子が階層内にネストされているスレッドリストが必要な場合は、 'threaded' ファインダを積み重ねられます。 :: diff --git a/ja/orm/database-basics.rst b/ja/orm/database-basics.rst index a7638e3626..6759ec2e53 100644 --- a/ja/orm/database-basics.rst +++ b/ja/orm/database-basics.rst @@ -65,7 +65,7 @@ Select 文の実行 $results = $connection ->execute( 'SELECT * FROM articles WHERE created >= :created', - ['created' => DateTime('1 day ago')], + ['created' => new DateTime('1 day ago')], ['created' => 'datetime'] ) ->fetchAll('assoc'); diff --git a/ja/orm/saving-data.rst b/ja/orm/saving-data.rst index 7c30926faa..189dd72ff5 100644 --- a/ja/orm/saving-data.rst +++ b/ja/orm/saving-data.rst @@ -101,45 +101,6 @@ CakePHP は挿入または更新のいずれの処理を行うかを ``isNew()`` $articlesTable->Tags->link($article, [$tag1, $tag2]); -結合用テーブルへのデータ保存 ----------------------------- - -結合用テーブルへのデータ保存は、特別な ``_joinData`` プロパティーを使用して行われます。 -このプロパティーは結合用の Table クラスの ``Entity`` インスタンスになっているはずです。 :: - - // 最初にレコードを紐付けます。 - $tag1 = $articlesTable->Tags->findByName('cakephp')->first(); - $tag1->_joinData = $articlesTable->ArticlesTags->newEntity(); - $tag1->_joinData->tagComment = 'CakePHP の ORM は実に強力です!'; - - $articlesTable->Tags->link($article, [$tag1]); - - // 既存のアソシエーションを更新します。 - $article = $articlesTable->get(1, ['contain' => ['Tags']]); - $article->tags[0]->_joinData->tagComment = '新しいコメント。' - - // 必須です。なぜならプロパティーを直接変更しているからです。 - $article->dirty('tags', true); - - $articlesTable->save($article, ['associated' => ['Tags']]); - -``newEntity()`` や ``patchEntity()`` を使う時に、結合用テーブルの情報もまた -作成/更新することができます。 POST データはこうなります。 :: - - $data = [ - 'title' => '私の素晴らしいブログ投稿', - 'body' => '何かのコンテンツが少し続きます。', - 'tags' => [ - [ - 'id' => 10, - '_joinData' => [ - 'tagComment' => '素晴らしい記事です!', - ] - ], - ] - ]; - $articlesTable->newEntity($data, ['associated' => ['Tags']]); - 多対多レコードの紐付け解除 --------------------------