content と images の 2 つのテーブルがあります (1 対多の関係のための ContentImages テーブルと、実際には 3 つのテーブルです)。
次のコードは、リレーションを保存します (アクション > updateContentFromRequest() 内)。
$ids = $this->getRequestParameter('contentImages');
if( isset($ids) ){
$ImagesTable = Doctrine::getTable('Content')->getRelation('Images')->getTable();
$associationName = Doctrine::getTable('Content')->getRelation('Images')->getAssociationTable()->getOption('name');
$this->content->$associationName->delete();
foreach ($ids as $id){
$id = explode('/', $id);
$this->content->get('Images')->add($ImagesTable->find($id));
}}
モデルを変更して、ContentImages テーブルに並べ替えフィールドを含めました。
content_id
image_id
sort (numeric)
ソート番号は単純に数字 (0、1、2、3 など) です。
$sort = $this->getRequestParameter('contentImagesSort');
ソート番号を保存するにはどうすればよいですか? Image テーブルに並べ替えフィールドを追加したくありません。これは、より多くのコンテンツ アイテムで画像を再利用するときに問題が発生する可能性があるためです。コンテンツが新しくてIDがまだわからないのでちょっと戸惑ってます…