CakePHP 3.x загрузка нескольких файлов не работает

При использовании линии:

<?= $this->Form->input('ad_photos[]', ['type' => 'file', 'multiple' => true, 'label' => 'Add Some Photos']); ?>

Форма даже не будет отправлена. Это как страница перезагружается. Этот код использовать для работы. Также, если я использую ad_photos. вместо ad_photos [] я получаю это сообщение об ошибке:

Cannot get an empty property

Если я просто использую ad_photos без точек или скобок, в этом запросе отображается только один файл -> данные. Я попытался отладить и var_dump данных, как показано ниже, но он даже не попадает в ту часть кода, используя скобки, и выдает ошибку только с точкой.

метод контроллера:

public function add()
{
$listing = $this->HavesAndWants->newEntity();
$error = '';
if ($this->request->is('post')) {
debug($this->request->data()); exit;
echo "<pre>"; var_dump($this->request->data()); echo "</pre>"; exit;
$listing = $this->HavesAndWants->patchEntity($listing, $this->request->data);
$listing->user_id = $this->Auth->user('id');
$listing->ad_photos = '';
if ( $error ) {
$this->Flash->error(__('The listing could not be saved. Please, try again.'));
} else {
if ($this->HavesAndWants->save($listing)) {
$this->Flash->success(__('The listing has been saved.'));
return $this->redirect(['action' => 'index']);
} else {
$this->Flash->error(__('The listing could not be saved. Please, try again.'));
}
}
}
$this->set(compact('error', 'listing'));
$this->set('_serialize', ['listing']);
}

Форма просмотра:

<?= $this->Form->create($listing, ['type' => 'file']) ?>
<h1><?= __('Add Listing') ?></h1>
<fieldset>
<legend><?= __('Contact Info') ?></legend>
<?= $this->Form->input('contact_name'); ?>
<?= $this->Form->input('contact_email'); ?>
<?= $this->Form->input('contact_phone'); ?>
<?= $this->Form->input('contact_street_address'); ?>
<?= $this->Form->input('contact_city'); ?>
<?= $this->Form->input('contact_state'); ?>
<?= $this->Form->input('contact_zip'); ?>
</fieldset>
<fieldset>
<legend><?= __('Listing Info') ?></legend>
<?= $this->Form->input('ad_title'); ?>
<?= $this->Form->input('ad_street_address'); ?>
<?= $this->Form->input('ad_city'); ?>
<?= $this->Form->input('ad_state'); ?>
<?= $this->Form->input('ad_zip'); ?>
<?= $this->Form->input('ad_additional_info', ['label' => 'Ad Description']); ?>
<?= $this->Form->input('ad_photos[]', ['type' => 'file', 'multiple' => true, 'label' => 'Add Some Photos']); ?>
</fieldset>
<?= $this->Form->button(__('Submit')) ?>
<?= $this->Form->end() ?>

0

Решение

Я чувствую себя немного глупо, но компонент безопасности меня чернил. Все, что мне нужно было сделать, это разблокировать поле ad_photos, и я смог загрузить несколько файлов. Хотя, я не уверен, почему меня вообще обманывают. Если у кого-то есть идеи, пожалуйста, напишите их ниже. 🙂

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector