CakePHP 3のテーブルに結合するための追加データを保存しようとしています。 アソシエーションは、articles => model_tags < =>タグ(テーブル)のように見えます。 TagsTableや記事表にCakePHPのテーブルに結合するデータを保存する3
私が持っている:記事とタグの間の
$this->belongsToMany('Tags', [
'joinTable' => 'model_tags',
'foreignKey' => 'foreign_id'
]);
関連はmodel_tagsテーブルに正しく保存されています。しかし、私はmodel_tagsテーブルの 'model_name'フィールドに追加のデータを保存したいと思います。将来、model_tagsテーブルを別のモデルに使用したいからです。その場合、article_tagsに保存されたすべてのタグ関連は、 'model_name'文字列 "articles"フィールドに含まれている必要があります。
主なポイントはある - どこ私は自分のコードを置く必要がありますか?私はこの問題で数時間も戦っています。私はbeforeSaveが最良の選択肢であるべきだと思います。
$tag = $this->Tags->findByTitle('heregoestagtitle')->first();
$tag->_joinData = $this->ModelTags->newEntity();
$tag->_joinData->model_name = 'articles';
$this->Tags->link($entity, [$tag]);
しかし、もちろん、私の場合、それは私が記事ごとにいくつかのタグが保存されますので、動作しませんので、そこに次のようになります。
はすでに私が別のレコードにデータを置くことができることを、考え出しましたまた、model_tagsテーブル内の関連レコードもほとんどありません。私は正しい方法でテーブルを結合するにデータを置くことができますどのように
?あなたが前に
foreach ($this->request->data['model_tags'] as $key => $value) {
$this->request->data['model_tags'][$key]['_joinData']['model_name '] = 'articles';
}
のようなコントローラでの保存メソッドを呼び出すだけで、データアレイをフォーマットする必要が