19:08
Этот коммит содержится в:
62
frm/Model.php
Обычный файл
62
frm/Model.php
Обычный файл
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: Игорь
|
||||
* Date: 24.01.2017
|
||||
* Time: 12:47
|
||||
*/
|
||||
|
||||
namespace PFRM;
|
||||
|
||||
|
||||
use PTEST\M\AdModel;
|
||||
|
||||
class Model {
|
||||
|
||||
protected $_table_name;
|
||||
|
||||
public $app;
|
||||
|
||||
function __construct() {
|
||||
global $app;
|
||||
$this->app = $app;
|
||||
|
||||
$this->_table_name = preg_replace( '/^.*\\\(.*)Model$/', "$1", get_called_class() );
|
||||
}
|
||||
|
||||
|
||||
public function save() {
|
||||
$operation = "INSERT INTO ";
|
||||
$suffix = "";
|
||||
if ( isset( $this->table_id ) ) {
|
||||
$operation = "UPDATE ";
|
||||
$suffix = " WHERE id = :id";
|
||||
}
|
||||
$table_columns = NULL;
|
||||
$pseudo_columns = NULL;
|
||||
foreach ($this as $key => $value ) {
|
||||
if ( preg_match('/^table_(?<name>.*)/', $key, $matches) ) {
|
||||
if ( $matches['name'] != 'id' && isset( $this->$key ) ) {
|
||||
$table_columns[] = $matches['name'];
|
||||
$pseudo_columns[] = ':' . $matches['name'];
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( is_array( $table_columns ) ) {
|
||||
$names = ' ( ' . implode( ',', $table_columns ) . ' ) ';
|
||||
$pseudo_names = ' ( ' . implode( ',', $pseudo_columns ) . ' ) ';
|
||||
$stmt = $this->app->dbh->prepare( $operation . $this->_table_name . $names . ' VALUES ' . $pseudo_names . $suffix );
|
||||
foreach ($table_columns as $value) {
|
||||
$tmp_str = 'table_' . $value;
|
||||
$stmt->bindParam( ':' . $value, $this->$tmp_str );
|
||||
}
|
||||
if ( isset( $this->table_id ) ) {
|
||||
$stmt->bindParam( ':id', $this->table_id );
|
||||
}
|
||||
$stmt->execute();
|
||||
}
|
||||
}
|
||||
|
||||
static public function findFirst( $condition ) {
|
||||
}
|
||||
}
|
Ссылка в новой задаче
Block a user