Я изменил код для использования цикла foreach, теперь я могу получить доступ к именам файлов, а print_r
печатает имена файлов в массиве так:
Array ( [0] => Uconn.png [1] => UW_Medicine.png [2] => Yale.png ) Axis.png
но япо-прежнему появляется следующая ошибка:
A PHP Error was encountered
Severity: Notice
Message: Array to string conversion
и ошибка базы данных:
Error Number: 1054
Unknown column 'Array' in 'field list'
INSERT INTO `yacht_slider` (`yacht_slide_id`, `slide`) VALUES (87, Array)
Я просто не знаю, как передать зацикленные файлы внутри модели для загрузки.
Я пытаюсь загрузить выбранное изображение на одном входе и несколько изображений на другом входе одновременно, я пробовал много способов и способов сделать это, но я всегда заканчиваю с ошибкой, в основном преобразованием массива в строкуошибка.
рекомендуемое изображение хранится в одной таблице базы данных, а несколько изображений хранятся в другой таблице.
Мой текущий код:
HTML:
<div class="form-group">
<label for="" class="control-label">Image</label>
<input type="file" class="form-control" name="featured">
</div>
<div class="form-group">
<label for="" class="control-label">Slider</label>
<input type="file" class="form-control" name="userfile[]" multiple>
</div>
Модель:
public function create_yacht($yacht_img, $slider){
$slug = url_title($this->input->post('title'));
$data = array(
'title' => $this->input->post('title'),
'slug' => $slug,
'img' => $yacht_img,
'city' => $this->input->post('city'),
'category' => $this->input->post('category'),
'price' => $this->input->post('price'),
'description' => $this->input->post('description')
);
$this->db->insert('yachts', $data);
$insert_id = $this->db->insert_id();
$data_4 = array(
'yacht_slide_id' => $insert_id,
'slide' => $slider
);
$this->db->insert('yacht_slider', $data_4);
}
Контроллер:
public function create_yacht(){
$data['title'] = 'Create';
$data['categories'] = $this->category_model->get_categories();
$this->form_validation->set_rules('title', 'Title', 'required');
$this->form_validation->set_rules('city', 'City', 'required');
if($this->form_validation->run() === FALSE){
$this->load->view('templates/admin_header');
$this->load->view('admin/create_yacht', $data);
$this->load->view('templates/admin_footer');
}else{
$config['upload_path'] = './assets/images';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '2048';
$this->load->library('upload', $config);
$featured = 'featured';
if (!$this->upload->do_upload($featured)) {
$errors = array('errors' => $this->upload->display_errors());
$yacht_img = 'https://via.placeholder.com/1920x1080';
}else{
$data = array('upload_data' => $this->upload->data());
$yacht_img = $_FILES['featured']['name'];
}
foreach ($_FILES['userfile']['name'] as $name) {
$this->upload->initialize($config);
$this->upload->do_upload($name);
$data = array('upload_data' => $this->upload->data());
$slider = $_FILES['userfile']['name'];
}
print_r($slider);
print_r($yacht_img);
$this->yacht_model->create_yacht($yacht_img, $slider);
// redirect('admin');
}
}