Исправление метода удаления документа: remove()

This commit is contained in:
Arsen Mirzaev Tatyano-Muradovich 2021-03-16 02:41:18 +10:00
parent bb4fa52274
commit 1592238e5f
3 changed files with 26 additions and 13 deletions

View File

@ -388,7 +388,7 @@ abstract class ActiveRecord extends BaseActiveRecord
if ($lock !== null) {
$condition[$lock] = $this->$lock;
}
$result = (new Query())->options($options)->remove(static::collectionName(), $condition);
$result = (new Query())->options($options)->collection(static::collectionName())->remove($condition);
if ($lock !== null && !$result) {
throw new StaleObjectException('The object being deleted is outdated.');
}

View File

@ -886,8 +886,6 @@ class Query extends Component implements QueryInterface
/**
* @param null $db
* @return array|bool
* @throws Exception
*/
public function one($db = null)
{
@ -1002,14 +1000,13 @@ class Query extends Component implements QueryInterface
* @return bool
* @throws Exception
*/
public function remove($collection, $condition = [], $params = [], $db = null)
public function remove($condition = [], $params = [], $db = null)
{
$this->collection = $collection;
$clauses = [
$this->genFor($collection),
$this->genIn($collection),
static::genFor($this->for ?? $this->collection),
static::genIn($this->in ?? $this->collection, $this->traversals),
$this->genWhere($condition, $params),
$this->genRemove($collection),
$this->genRemove($this->in ?? $this->collection),
$this->genOptions(),
];
@ -1213,6 +1210,7 @@ class Query extends Component implements QueryInterface
$statement->setBatchSize(1);
$token = $this->getRawAql($statement);
Yii::info($token, 'mirzaev\yii2\arangodb\Query::query');
try {
Yii::beginProfile($token, 'mirzaev\yii2\arangodb\Query::query');
@ -1222,6 +1220,7 @@ class Query extends Component implements QueryInterface
Yii::endProfile($token, 'mirzaev\yii2\arangodb\Query::query');
throw new Exception($ex->getMessage(), (int) $ex->getCode(), $ex);
}
return $cursor->getFullCount();
}
@ -1546,7 +1545,11 @@ class Query extends Component implements QueryInterface
*/
public function limit($limit)
{
// Если $limit === 0 то $limit = null
$limit === 0 and $limit = null;
$this->limit = $limit;
return $this;
}

View File

@ -5,18 +5,28 @@
*/
/* @var $className string the new migration class name */
echo "<?php\n";
?>
class <?= $className ?> extends \mirzaev\yii2\arangodb\Migration
echo <<<HTML
<?php
use mirzaev\yii2\arangodb\Migration;
class $className extends Migration
{
public function up()
{
$this->createCollection('<?= $className ?>',[]);
/**
* @param string Название коллекции
* @param array Тип коллекции (2 - документ, 3 - ребро)
*/
\$this->createCollection('$className', ['type' => 2]);
}
public function down()
{
$this->dropCollection('<?= $className ?>');
\$this->dropCollection('$className');
}
}
HTML;
?>