Проверка на дубль и добавление API MODX

Подскажите, как сделать проверку на дубль записи в базе, и если дубля нет добавлять в базу данные методами API MODX? Сейчас написано вот так:

$domain = htmlspecialchars($_POST['domain']);
$created_by = $modx->user->get('id');

// Проверка на дубль
$a = $modx->getObject('seoPanelSites', array('domain' => $domain));
$a = $a->toArray();
$url = $a["domain"];

if($_POST["domain"] != $url) {
    // Сохранение в таблицу
    $site = $modx->newObject('seoPanelSites');
    $site->fromArray(
        array(
            'domain' => $domain, 
            'tic'    => $cy, 
            'pr' => $pr, 
            'yaca'     => $yaca_cat,
            'dmoz'  => $dmoz_cat,
            'yaindex' => $yaindex,
            'yaindex_up' => $yaindex_up,
            'gooindex' => $gooindex_count,
            'gooindex_up' => $gooindex_up,
            'liveinternet' => 0,
            'domainend' => $whois_days,
            'sorting_id' => $sorting_id,
            'created_by' => $created_by
        )
    );
    $site->save();
} else {
echo 'В базе уже имеется такая запись!';
}

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

<form class="bs-example form-horizontal" action="[[~[[*id]]]]" method="post">
                                                    <input type="hidden" value="[[!+id]]" name="seopanel">
                                                    <fieldset>
                                                      <div class="form-group [[!+error.domain:notempty=`has-error`]]">
                                                        <label for="domain" class="col-lg-4 control-label">Домен (без www)</label>
                                                        <div class="col-lg-8">
                                                          <input type="text" value="[[!+domain]]" class="form-control"
                                                          id="student" placeholder="site.ru" name="domain">
                                                          <span class="help-block">[[!+error.domain]]</span>
                                                        </div>
                                                      </div>
                                                    </fieldset>
                                          </div>
                                          <div class="modal-footer">
                                            <button type="button" class="btn btn-default" data-dismiss="modal">Закрыть</button>
                                            <button type="submit" class="btn btn-primary">Сохранить</button>
                                          </div>
                                          </form>
Может как-то через AjaxForm или AjaxSnippet можно сделать?
SEQUEL.ONE
26 августа 2015, 22:58
modx.pro
1 448
0

Комментарии: 3

Виталий Киреев
27 августа 2015, 05:09
+1
Если domain уникальное поле, то
if ($modx->getCount('seoPanelSites', array('domain' => $domain)) ==  0) {
// здесь остальное из if
}
В вашем варианте получаете результат null в getObject вместо объекта, и поэтому дальше не идет.
    SEQUEL.ONE
    27 августа 2015, 19:06
    0
    Спасибо, всё заработало. Домены добавляются) А не в курсе как в pdoPage можно сделать выборку по полям? Рисуется таблица с параметрами и при нажатии скажем на тИЦ показывал сначало сайты с большим тИЦ и так по всем полям? Есть ли какое-то простое решение?
      SEQUEL.ONE
      27 августа 2015, 22:07
      0
      А как после сохранения данных кэш сбрасывать добавленной записи в БД через API MODX?
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3