我正在寻找一种方法,让使用Containable
行为的查询结果的格式与find('list')
结果相同。 E.g:
$this->ModelA->find('all', array(
'contain' => array(
'ModelB' => array(
'ModelC' => array(
// This does NOT work but I need ModelC's fields to be formatted as an associative array where IDs are keys and names are values
'fields' => array('id' => 'name')
)
)
)
));
注意:将递归设置为1或2而不是使用Containable
不一个选项,除非{{1}没有可用的解决方案}}
答案 0 :(得分:1)
我不确定您是否可以以所需的格式返回返回的包含数据,但您可以在找到后更改它。 Cake实际构建<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="jumbotron">
<form id="form" action="http://localhost:9767/ProspectWorxService.svc/SaveUploadedFile?Id=" name="myform" method="post" enctype="multipart/form-data" class="dropzone" id="dropzoneForm">
<div class="fallback">
<input name="file" type="file" multiple />
<input type="submit" value="Upload" />
</div>
</form>
</div>
的回报的方式是使用The List of Bar Items and Links。因此,您可以使用此更改返回的数据,使数据外观列表为find('list')
返回: -
find('list')
这将返回: -
$data = [
[
'id' => 1,
'name' => 'Foo'
],
[
'id' => 2,
'name' => 'Bar'
]
];
$results = Hash::combine($data, '{n}.id', '{n}.name');
由于您没有提供关联,因此不确定您的[
1 => 'Foo',
2 => 'Bar'
]
数据是什么样的,但您猜测可以执行以下操作: -
find('all')
答案 1 :(得分:0)
$这 - &GT; ModelA-&GT; Behaviors-&GT;负载( '中可容纳');
$ this-&gt; ModelA-&gt; find('all',array( 'contains'=&gt;数组('ModelB','ModelC'=&gt;数组('fields'=&gt;数组('id','name')) ) ) );
请确保您已创建模型
的关联