0

我如何检查从其他私人功能中获得的价值。

假设我有processCategory()函数,我想检查这个类别名称是否已经与其他函数一起存在,比如私有checkCategory()

我已经尝试过,但我的 if 语句不检查它是否存在并且仍在处理数据库。

我的processCategory()功能:

/**
* Content::processCategory()
* 
* @return
*/

public function processCategory()
{
    $rules = array(
        'category' => array('required|string|min_len,3|max_len,60', Lang::$word->CATEGORY),
        'active' => array('required|numeric', Lang::$word->PUBLISHED),
    );

    $validate = Validator::instance();
    $safe = $validate->doValidate($_POST, $rules);

    if ($this->checkCategory($safe->category, 'check') == "true") {
        Message::msgSingleError("Category name already exists");
    }

    if (empty(Message::$msgs)) { //it should not process this if category name already exists in database.
        //NOTE: At the moment it still processing category name

    $data = array(
        'name' => $safe->category,
        'author' => App::Auth()->name,
        'active' => $safe->active,
    );

    (Filter::$id) ? Db::run()->update(self::cpTable, $data, array("id" => Filter::$id)) : Db::run()->insert(self::cpTable, $data)->start(); 

    $message = Filter::$id ? Message::formatSuccessMessage($data['name'], Lang::$word->NW_UPDATE_OK) : Message::formatSuccessMessage($data['name'], Lang::$word->NW_ADDED_OK);

    Message::msgReply(Db::run()->affected(), 'success', $message);
    } else {
    Message::msgSingleStatus();
    }
}

我的checkCategory()功能:

/**
* Content::checkCategory()
* 
* @return
*/

private function checkCategory($name, $type)
{   
    switch ($type) {
    case "insert":
        if (!$row = Db::run()->first(self::cpTable, null, array("name =" => $name))) {
            return $this->insertCategory($name);
        } else {
            return $row->id;
        }
        break;

    case "check":
        $count = Db::run()->select(self::cpTable, null, array("name =" => $name))->results(); 
        return (count($count) > 1) ? 'true' : 'false';
        break;
    }
}

类型:

$type = "insert"- 用于项目插入。它检查类别是否存在 - 如果不存在则插入类别。

$type = "check"- 对于类别。它应该只检查是否存在。如果存在,则应发送数据为真,然后其他功能应停止处理并给我错误消息。

4

0 回答 0