0

HABTM+cakephpに問題があります。

私のアプリでは、このモデル(リレーション定義付き)があります:

クライアント:

public $hasAndBelongsToMany  = array(
    'TiposComercio' => array(
        'className'             => 'TiposComercio',
        'joinTable'             => 'tipos_comercio_cliente',
        'foreignKey'            => 'cliente',
        'associationForeignKey' => 'tipo_comercio'
    )
);

TiposComercio:

public $hasAndBelongsToMany = array(

    'Cliente' => array(
        'className' => 'Cliente',
        'joinTable' => 'tipos_comercio_cliente',
        'foreignKey' => 'tipo_comercio',
        'associationForeignKey' => 'cliente'
    )
);

フォームが投稿されたとき、私は$this->request->dataこれを配列に持っています:

array(

    'Cliente' => array(
        'password' => '*****',
        'razao_social' => 'Teste',
        'responsavel' => 'responsavel',
        'cidade' => '1',
        'cep' => '13560201',
        'logradouro' => 'Log test',
        'numero' => '',
        'bairro' => '',
        'complemento' => '',
        'atividades' => '',
        'username' => 'username11',
        'TiposComercio' => array(
            (int) 0 => '1',
            (int) 1 => '4'
        )
    )

)

$ this-> Cliente-> saveAll($ this-> request-> data);を実行すると ClientesControllerで、次の問題が発生します。

  • Clienteデータのみが保存されます。TiposComercioは何も保存されません。

どうしたの?

ありがとう!

4

1 に答える 1

2

データ配列の構造が間違っているようです。HABTMデータを保存するためのマニュアルをご覧ください:http://book.cakephp.org/2.0/en/models/saving-your-data.html#saving-related-model-data-habtm

例に基づいて、データ配列は次のように形成する必要があります。

array(
    'Cliente' => array(
        'password' => '*****',
        'razao_social' => 'Teste',
        'responsavel' => 'responsavel',
        'cidade' => '1',
        'cep' => '13560201',
        'logradouro' => 'Log test',
        'numero' => '',
        'bairro' => '',
        'complemento' => '',
        'atividades' => '',
        'username' => 'username11',
    ),
    'TiposComecio' => array(
        (int) 0 => '1',
        (int) 1 => '4'
    )
)
于 2012-10-31T14:12:00.600 に答える