Php - Codeigniter Rest api простой CRUD

У меня проблема с вставкой данных в MySQL, для которых требуется метод POST с помощью почтальона.

эта функция data_post() вставляет данные из базы данных, но когда я пытаюсь вставить необработанные данные с помощью почтальона

{"id":"2","name":"ropen","password":"pamela005"}

У меня ошибка почтальона:

405 Method not Allowed

Это мой контроллерUsers.php

public function data_post(){
    $params = [
        'id' => 1,
        'name' => 'John Doe',
        'password' => 'test'
    ];
    $resp = $this->user_model->data($params);
    $this->set_response($resp, REST_Controller::HTTP_CREATED);    
}

МодельUser_model.php

public function data($data){   
      $this->db->insert('user',$data);
   }
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
1 827
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Надеюсь, что это поможет вам :

Вы должны сначала получить данные post с помощью $this->post(), должно быть так:

Примечание: если ваш столбец id с автоинкрементом, нет необходимости добавлять идентификатор в $params

public function data_post()
{
    $id = $this->post('id');
    $name = $this->post('name');
    $password = $this->post('password');

    $params = array('id' => $id,'name' => $name,'password' => $password);
    $resp = $this->user_model->data($params);
    $this->set_response($resp, REST_Controller::HTTP_CREATED);    
} 

Подробнее: https://github.com/chriskacerguis/codeigniter-restserver#handling-requests

обновляйте и удаляйте таким же образом, просто попробуйте, если у вас возникнут какие-либо проблемы, задайте новый вопрос

Pradeep 19.07.2018 09:19

Вы используете почтальона для обновления данных, если да, просто получите данные с помощью $this->post() , а затем обновите их

Pradeep 19.07.2018 09:54

У меня проблемы с методом обновления и удаления, я не знаю почему, он возвращает данные были удалены или обновлены, но когда я смотрю в свою базу данных, ничего не происходит

Arwin Chua 19.07.2018 12:19

общедоступная функция update_users ($ id, $ data) {$ this-> db-> where ('id', $ id) -> update ('user', $ data); return array ('status' => 200, 'message' => 'Данные были обновлены.'); } общедоступная функция delete_users ($ id) {$ this-> db-> where ('id', $ id) -> delete ('user'); return array ('status' => 200, 'message' => 'Данные были удалены.'); }

Arwin Chua 19.07.2018 12:31

на данный момент да, я использую почтальона. После того, как этот код заработает, я собираюсь использовать android и .net C# позже

Arwin Chua 19.07.2018 12:37

какое имя и идентификатор столбца вы отправляете с почтовым запросом?

Pradeep 19.07.2018 12:37

имя и пароль

Arwin Chua 19.07.2018 12:40

сделайте почтовый запрос, и ваш метод удаления должен быть таким: public function delete_post() { $id = $this->post('id'); $this->db->where('id',$id)->delete('user'); return array('status' => 200,'message' => 'Data has been deleted.'); }

Pradeep 19.07.2018 12:48

работает спасибо. но почему метод _delete () не работает?

Arwin Chua 19.07.2018 12:59

извините, у меня только 13 репутации, я проголосую за это позже, если у меня будет 15+ репутации

Arwin Chua 19.07.2018 15:07

Другие вопросы по теме