Codeigniter: как сделать коды моделей многоразовыми? - PullRequest
0 голосов
/ 24 февраля 2019

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

функция модели

function insertTable($table, $data) {
    $this->db->insert($table, $data);
    return $this->db->insert_id();
}

инструкция контроллера

$insert = $this->Model_Action->insertTable('student',$student_data)

Но я хочусделать то же самое в следующем коде.Есть ли способ заменить p_id на $ id?

Модель

  function delete_by_id($id)
    {
        $this->db->where('p_id', $id);
        $this->db->delete('parent');
    }

Контроллер

 public function student_delete($id)
{
    $this->load->model('Model_Action');
    $this->Model_Action->delete_by_id($id);
    echo json_encode(array("status" => TRUE));
}

Ответы [ 5 ]

0 голосов
/ 26 февраля 2019

Контроллер:

Запись требуемого имени таблицы базы данных в переменную $ table в контроллере.И передайте переменную $ table в модель.

Модель:

function insertTable($table, $data) {
    $this->db->insert($table, $data);
    return $this->db->insert_id();
}
0 голосов
/ 25 февраля 2019

Вы можете определить Table_name в модели для многократно используемых методов вставки, удаления, редактирования.

Вы можете использовать там, где условия используют условия мудро.

Пример.

function get($id='',$name='')
{
    if($id >0)
    {
        $this->db->where('id',$id);
    }
}
0 голосов
/ 25 февраля 2019

Да, вы можете.ваша модель

function delete_by_id($column_name, $id){
    $this->db->where($column_name, $id);
    $this->db->delete('parent');
}

, затем используйте ее в student_delete методах контроллера, таких как

$this->Model_Action->delete_by_id('p_id', $id);
0 голосов
/ 25 февраля 2019

Что ж, вы должны использовать базовые классы codeigniter .

В иерархии папок есть папка с именем core, в которой вы можете создать родительский контроллер и модель.

Вы можете выполнять все функции модели, которые мы используем почти во всех моделях, например создавать, обновлять, удалять, читать записи в этой родительской модели и наследовать модели наших приложений от этой модели.

В нашем контроллере нам просто нужно получить название модели и использовать эти функции.

Примечание: я использую то же самое с 2018 года.

0 голосов
/ 25 февраля 2019

Если вы хотите удалить строку таблицы «ученик» по идентификатору, вы можете использовать следующий код:

function delete_by_id($id) 
{
    $this->db->delete('student', array('id' => $id));
}

Если вы хотите удалить строку другой таблицы по идентификатору:

function delete_by_id($table, $id) 
{
    $this->db->delete($table, array('id' => $id));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...