@AlexSure

Почему загружаются изображения в папку ./assets/avatars/ но не загружаются их в базу данных?

На проекте реализованы регистрация и авторизация пользователя, нужно еще реализовать загрузку аватаров пользователя. Было реализовано загрузка изображений в базу данных, но подгружались изображения ко всем пользователям, после чего я попытался реализовать подгрузку аватара только тому пользователю, кто авторизовался в сессии.

Код контроллера "avatar":
<?php defined('BASEPATH') OR exit('No direct script access allowed');
class Avatar extends CI_Controller {
	public function __construct()
	{
		parent::__construct();
		$this->load->helper('url');
		$this->load->library(['form_validation', 'session']);
		$this->load->database();
		$this->load->model('avatarModel');
	}

	public function uploadAvatar(){
		$config['upload_path'] =  './assets/avatars/';
		$config['allowed_types'] = 'gif|jpg|png|svg';

		$this->load->library('upload', $config);

		if ($this->upload->do_upload('avatar')) {
			$upload_data = $this->upload->data();
			$data['avatar'] = $upload_data['file_name'];

			$id_user = $this->session->userdata('id_user');
			$user_data = ['id_user' => $id_user, 'avatar' => $data['avatar']];

			$this->avatarModel->storeAvatar($user_data);
			redirect(base_url().'welcome');
		} else {
			echo $this->upload->display_errors();
		}
	}
}


Код модели "avatarModel":
<?php
class AvatarModel extends CI_Model {
	function storeAvatar($data){
		$this->db->where('id_user', $data['id_user']);
		$this->db->update('users', ['avatar' => $data['avatar']]);
	}
}


Код страницы авторизованного пользователя:
<div>
	<h1>Рады Вас видеть!</h1>
	<div>
		<h2>Загрузите свою аватарку</h2>
		<form action="<?= base_url(); ?>avatar/uploadAvatar" method="post" enctype="multipart/form-data">
			<input type="file" name="avatar"/>
			<button type="submit">Загрузить аватар</button>
		</form>
	</div><br>
	<a href="<?= base_url() . 'login/logout'; ?>"><button>Выйти</button></a>
</div>


6640f284bf57e145080455.png
  • Вопрос задан
  • 44 просмотра
Пригласить эксперта
Ответы на вопрос 1
thewind
@thewind
php программист, front / backend developer
А вот в avatarModel разве не надо объединить where и update?
$this->db->where(…)->update(…)
Ну или что-то подобное… может в методе update есть доп аргументы для условий?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы