Я использую CakePHP-AjaxMultiUpload Плагин, и иметь следующий код внутри edit.ctp
но выпадающий список здесь не виден.
<div class="useTypes form">
<?php echo $this->Form->create('UseType'); ?>
<fieldset>
<legend><?php echo __('Edit Use Type'); ?></legend>
<?php
echo $this->Form->input('id');
echo $this->Form->input('name');
echo $this->Form->input('description');
echo $this->Upload->edit('UseType', $this->Form->fields['UseType.id']);
?>
</fieldset>
<?php
echo $this->Form->end(__('Submit')); ?>
</div>
но когда я использую только следующий код, это видно
<?php echo $this->Upload->edit('UseType', $this->Form->fields['UseType.id']);?>
Я пробовал это в CakePHP 2.6 с темой по умолчанию.
Вы не должны оборачивать $this->Upload->edit()
внутри <form>
тег, так как он уже создает свою собственную форму.
Вам также может понадобиться заменить:
$this->Form->fields['UseType.id']
с:
$this->Form->value('UseType.id')
Таким образом, это должно работать:
<?php echo $this->Form->create('UseType'); ?>
<fieldset>
<legend><?php echo __('Edit Use Type'); ?></legend>
<?php
echo $this->Form->input('id');
echo $this->Form->input('name');
echo $this->Form->input('description');
?>
</fieldset>
<?php echo $this->Form->end(__('Submit')); ?>
<?php echo $this->Upload->edit('UseType', $this->Form->value('UseType.id'));?>
редактировать
Если вам нужно загрузить файлы на свой /use_types/add
просмотр, вы можете сделать следующее.
В UseTypeController::add()
включают:
$this->set('id',CakeText::uuid()); //String::uuid() for CakePHP 2.6 or lower
И в /app/View/UseTypes/add.ctp
:
<?php echo $this->Form->input('id',array('type' => 'hidden', 'value' => $id)); ?>
Недостатком является то, что если вам не удастся сохранить вашу модель после загрузки файлов через AJAX, они останутся сиротами.
Других решений пока нет …