saveAll有很多不需要的东西';t在CakePHP2.0.6中工作
有关更多详细信息(控制器、型号等),请参见要点: 我的问题如下:saveAll有很多不需要的东西';t在CakePHP2.0.6中工作,php,cakephp,cakephp-2.0,Php,Cakephp,Cakephp 2.0,有关更多详细信息(控制器、型号等),请参见要点: 我的问题如下: 我有一个使用HTML助手的普通表单。使用ajax,我可以添加新的输入(文件)来上传动态图像。 TipoImovel(或英文,PropertyType) ImagemTipoImovel(或ImagePropertyType) 当我运行上传和验证数据所需的所有操作时,我会得到以下数组(它只是一个示例文本): 问题出在哪里? 编辑2012年3月12日21:59 我做了一些测试,发现如下: beforeValidate不返回图像的名称,
我有一个使用HTML助手的普通表单。使用ajax,我可以添加新的输入(文件)来上传动态图像。
TipoImovel(或英文,PropertyType)
ImagemTipoImovel(或ImagePropertyType)
当我运行上传和验证数据所需的所有操作时,我会得到以下数组(它只是一个示例文本):
问题出在哪里?
编辑2012年3月12日21:59 我做了一些测试,发现如下: beforeValidate不返回图像的名称,即他试图保存的第一个名称,以便在以后运行beforeValidate之前运行,因此他尝试保存一个数组,然后只上载并返回图像名称
现在的问题是:即使在hasMany关系中,如何在保存之前运行某些东西?尝试在TipoImovel.php中设置为true
谢谢尝试将
saveAll
更改为saveAssociated
您在两个模型文件中都定义了关系吗?为什么[tipo\u imovel\u id]=>
为空?请将的代码插入imagem\u tipo\u imoveis
,验证不一致性的save/saveAll在哪里?我认为上传必须通过模型ImagemTipoImovel
,而不是现在的TipoImovel
。并将dependent
属性设置为true。对于更新后的问题,您可以在beforeSave
方法中执行某些操作,即使在任何模型的hasMany关系中也是如此。插入件是由在每个模型中都是单独的。没有区别,解决方案是实例化行为“ImagemTipoImovel”而不是“TipoImovel”。无论如何,谢谢。只是这不起作用,但是,当我在ImagemTipoImovel中放入$actAs='ImagemBehavior'时,效果非常好。无论如何,谢谢我的朋友。
<?php
// debug após sair do ImagemBehavior - responsável pelo upload
Array
(
[TipoImovel] => Array
(
[empreendimento_id] => 2
[tipo_id] => 1
[chamada1] => <pre><span class="na">saveAssociated</span></pre>
[chamada2] => <pre><span class="na">saveAssociated</span></pre>
[chamada3] => <pre><span class="na">saveAssociated</span></pre>
[descricao] => <pre><span class="na">saveAssociated</span></pre>
[youtube_link] => saveAssociated
[vimeo_embed] => saveAssociated
[ativo] => 1
)
[ImagemTipoImovel] => Array
(
[0] => Array
(
[tipo_imovel_id] =>
[imagem] => 65d7adc2c7ed519e489789fc3eb60e8a.jpg
)
[1] => Array
(
[tipo_imovel_id] =>
[imagem] => f95bcebaecad405b2f7a50a2535d4c4b.jpg
)
)
)
Notice (8): Array to string conversion [CORE/Cake/Model/Datasource/DboSource.php, line 964]
Database Error
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Array' in 'field list'
SQL Query: INSERT INTO `imagem_tipo_imoveis` (`tipo_imovel_id`, `imagem`, `modified`, `created`) VALUES (23, Array, '2012-03-11 17:17:14', '2012-03-11 17:17:14')
Notice: If you want to customize this error message, create app/View/Errors/pdo_error.ctp
Stack Trace
#0 /home/patrick/workspace/.../cakephp/lib/Cake/Model/Datasource/DboSource.php(436): PDOStatement->execute(Array)
#1 /home/patrick/workspace/.../cakephp/lib/Cake/Model/Datasource/DboSource.php(403): DboSource->_execute('INSERT INTO `im...', Array)
#2 /home/patrick/workspace/.../cakephp/lib/Cake/Model/Datasource/DboSource.php(967): DboSource->execute('INSERT INTO `im...')
#3 /home/patrick/workspace/.../cakephp/lib/Cake/Model/Model.php(1646): DboSource->create(Object(ImagemTipoImovel), Array, Array)
#4 /home/patrick/workspace/.../cakephp/lib/Cake/Model/Model.php(1955): Model->save(Array, Array)
#5 /home/patrick/workspace/.../cakephp/lib/Cake/Model/Model.php(2096): Model->saveMany(Array, Array)
#6 /home/patrick/workspace/.../cakephp/lib/Cake/Model/Model.php(1908): Model->saveAssociated(Array, Array)
#7 /home/patrick/workspace/.../cakephp/app/Controller/TipoImoveisController.php(44): Model->saveAll(Array)
#8 [internal function]: TipoImoveisController->admin_add()
#9 /home/patrick/workspace/.../cakephp/lib/Cake/Controller/Controller.php(473): ReflectionMethod->invokeArgs(Object(TipoImoveisController), Array)
#10 /home/patrick/workspace/.../cakephp/lib/Cake/Routing/Dispatcher.php(104): Controller->invokeAction(Object(CakeRequest))
#11 /home/patrick/workspace/.../cakephp/lib/Cake/Routing/Dispatcher.php(86): Dispatcher->_invoke(Object(TipoImoveisController), Object(CakeRequest), Object(CakeResponse))
#12 /home/patrick/workspace/.../cakephp/app/webroot/index.php(96): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse))
#13 {main}
'dependent' => true,