Model

Models beschaffen und manipulieren Daten. Sie besitzen die Elternklasse Core\Model, von welcher sie die Datenbankverbindung in dem Klassen-Attribut $db übernehmen. Das Attribut verweist auf die Datenbank-Verbindung des aktuell aktiven Mandaten, ist also als Mandanten-abhängig anzusehen.

Ein Model kann beliebig viele Methoden mit beliebigen Namen besitzen. Wir empfehlen jedoch die Klassen einheitlich zu der Applikation selbst aufzubauen. Als Referenz können Sie das unten stehende Beispiel heranziehen.

sample.model.php

<?php
namespace Modules\Sample\Models;

use Core\Model;

/**
 * Class Sample_model
 * 
 * Data management for sample module.
 * 
 * @package Modules\Sample\Models
 */
class Sample_model extends Model
{
    /**
     * Model database table name.
     */
    const DATABASE_TABLE = PREFIX . 'sample';

    /**
     * Sample_model constructor.
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Get data from the database table.
     *
     * @param string $id
     *
     * @return array
     */
    public function get($id = "")
    {
        if (!empty($id)) {
            return $this->db->select("SELECT * FROM " . DATABASE_TABLE . " WHERE payment_method = :id", [
                ":id" => $id,
            ])[0];
        } else {
            return $this->db->select("SELECT * FROM " . DATABASE_TABLE);
        }
    }

    /**
     * Add data to the database table.
     *
     * @param $data
     *
     * @return string
     */
    public function add($data)
    {
        return $this->db->insert(static::DATABASE_TABLE, $data);
    }

    /**
     * Update data in database table.
     *
     * @param $id
     * @param $data
     *
     * @return int
     */
    public function update($id, $data)
    {
        return $this->db->update(static::DATABASE_TABLE, $data, [
            'id' => $id
        ]);
    }

    /**
     * Delete data from database table.
     *
     * @param $id
     *
     * @return int
     */
    public function delete($id)
    {
        return $this->db->delete(static::DATABASE_TABLE, [
            'id' => $id
        ]);
    }
}