CakePHP Yerleştirme formlar

2 Cevap php

Bir biçimde yuva birden modellere CakePKP'deki bir yolu olup olmadığını merak ediyorum?

Ben başarmak için çalışıyorum Posts bu da otomatik olarak oluşturulan mesaja bağlı olacağını Images (ayrı model) eklemek için alanları içerecek oluşturmak için bir form yapmaktır.

Ruby on Rails için benzer bir şey ** accept_nested_attributes_for **.

2 Cevap

Ben doğru anlamak, bu kesinlikle (: Saving Related Model Data resmi belgelerine bakın) yapılabilir. Post hasMany Image ve Image belongsTo Post, sen şu şekilde kurmak istiyorum varsayarsak.

Sizin görüşünüze göre, bu yüzden böyle bir post oluşturma formu oluşturmak istiyorum:

<?php
    $form->create("Post", array('action'=>'add','type'=>'file'));
    $form->input("Post.title");
    $form->input("Post.body");

    $form->input("Image.0.upload", array('type'=>'file', 'label'=>__('Attach an image:',true));
    $form->input("Image.1.upload", array('type'=>'file', 'label'=>__('Attach an image:',true));
?>

Bu Post.title ve Post.body alanları ve iki yeni Görüntüler için iki dosya eki widget işler hızlı ve kirli şeklini tanımlar.

Sonra, içinde posts_controller.php:

class PostsController extends AppController
{
    /* stuff before PostsController::add() */

    function add()
    {
        if (!empty($this->data)) {

            if ( $this->Post->saveAll( $this->data, array('validate'=>'first'))) {
                $this->flash(__("Post added.",true), 5);
            }
        }
    }

    /* Stuff after PostsController::add() */
}

Sizin Mesaj ve Görüntü verilerini doğrular varsayarsak, bu yeni Mesaj kurtaracak, sonra da aynı anda ve otomatik olarak yeni Mesaj kayıtla yeni görüntü kayıtları ilişkilendirerek, iki Images kaydedin.

Ben bunu yapmak için hiçbir CakePHP uyumlu bir yolu vardır eminim. Ben sadece bir big formu yazmak ve istekten sonra denetleyicisi içeriğini ayrıştırmak için öneririm ...