5 Commits

Author SHA1 Message Date
d8031c497b 10_ballov-1452 10_ballov-174 Параметр возврата нового заполненногоq из запроса собственного экземпляра в SqlModel::fetch(). 2020-04-09 21:41:44 +03:00
984e9aa716 * make majestic models as orm-objects (only on single fetch record)
10_ballov-1431 Авторизация и вывод 3-й цены на мобильной версии зеленого моря
2020-03-27 21:39:45 +03:00
89ececaef2 Fix GeneralException namespace used in DbDriver 2020-01-10 00:16:20 +03:00
bb2d713ab3 count fix 2018-04-20 13:24:30 +03:00
e475484f5a ArraybleInterface - Arrayble 2016-01-25 08:52:48 +03:00
4 changed files with 25 additions and 6 deletions

View File

@ -1,4 +1,6 @@
<?php namespace Majestic\Model;
use Majestic\Exception\GeneralException;
/**
* @copyright NetMonsters <team@netmonsters.ru>
* @link http://netmonsters.ru
@ -36,7 +38,7 @@ abstract class DbDriver
$required = array('database', 'username', 'password', 'hostname');
foreach ($required as $option) {
if (!isset($config[$option])) {
throw new \GeneralException('Configuration must have a "' . $option . '".');
throw new GeneralException('Configuration must have a "' . $option . '".');
}
}
}

View File

@ -21,7 +21,8 @@ class MySQLiStatement extends DbStatement
if ($this->map === null) {
$this->mapPlaceholders();
}
if (count($this->map) > 0) {
if ($this->map) {
if (!is_string($param) && !is_int($param)) {
throw new \Majestic\Exception\GeneralException('Placeholder must be an integer or string');
}
@ -33,6 +34,7 @@ class MySQLiStatement extends DbStatement
return true;
}
}
return false;
}
protected function mapPlaceholders()

View File

@ -164,9 +164,10 @@ abstract class SqlModel extends Model
* @param string $data Request
* @param array $params Request parameters
* @param CacheKey $cache_key Key for caching in
* @param bool $returnNewInstance Return the instance of this filled from query
* @return mixed
*/
protected function fetch($data, $params = array(), $cache_key = null)
protected function fetch($data, $params = array(), $cache_key = null, $returnFilledInstance = true)
{
if (!$cache_key || !$result = $cache_key->get()) {
$result = $this->query($data, $params)->fetch();
@ -174,6 +175,20 @@ abstract class SqlModel extends Model
$cache_key->set($result);
}
}
if ($result && $returnFilledInstance) {
$instance = new $this;
foreach (get_object_vars($result) as $key => $value) {
if ($key == 'table') {
$key = 'table_field';
}
$instance->$key = $value;
}
return $instance;
}
return $result;
}
@ -250,4 +265,4 @@ abstract class SqlModel extends Model
{
return new SqlCriteria($this, $sql_expression, $sql_expression_params);
}
}
}

View File

@ -1,8 +1,8 @@
<?php namespace Majestic\Model;
use Illuminate\Support\Contracts\ArrayableInterface;
use Illuminate\Contracts\Support\Arrayable;
class SqlResultCollection extends \ArrayIterator implements iSqlResultItems, ArrayableInterface
class SqlResultCollection extends \ArrayIterator implements iSqlResultItems, Arrayable
{
private $items;