Загрузка изображений с ограничением внешнего ключа - PullRequest
0 голосов
/ 15 января 2019

У меня есть ограничение внешнего ключа в таблице images, которая является столбцом user_id в моей таблице users. При попытке загрузить новое изображение появляется ошибка БД

1364: поле 'user_id' не имеет значения по умолчанию.

Я подозреваю, что это потому, что код ищет значение для добавления в столбец images. Сначала я думал, что если сеанс установлен, загрузка изображения автоматически идентифицирует пользователя, который загружает изображение.

Вопрос: Как я могу включить данные, которые объединят две таблицы, когда пользователь загружает изображение? Вот код в контроллере, который загружает изображение:

function upload() {
        //$filename = md5(uniqid(rand(), false));
        $config = array(
            'upload_path' => 'uploads',
            'allowed_types' => "gif|jpg|png|jpeg",
            //'file_name' => $filename,
            'max_size' => 200,
            'max_width' => 1024,
            'max_height' => 768     
        );          


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

    if(empty($this->session->userdata['email'])){
               redirect(site_url().'/main/login/');

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

    if($this->upload->do_upload())
        {
        $file_data = $this->upload->data();

        $data['name'] = $file_data['file_name'];
        $data['file'] = $file_data['file_path'];
        $data['file_type'] = $file_data['file_type'];
        $data['file_size'] = $file_data['file_size'];           
        $data['date_uploaded'] = date('Y/m/d H:i:s');

The images_model:

function save_image($data){     
    $this->db->insert('images', $data);
} 

Таблица изображений:

Ценю ВСЕ входные данные и предложения.

1 Ответ

0 голосов
/ 15 января 2019

Я думаю, что в вашем приложении только пользователи могут загружать изображения ... Затем перед загрузкой изображения вы должны проверить, подписан пользователь или нет, и получить идентификатор пользователя ...

когда вы хотите добавить новую запись в таблицу изображений, вы должны добавить user_id в массив $ data

$ data ['user_id'] = $ this-> session-> userdata ('user_id'); // или что-то, что вы добавили в сессию

.....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...