我如何检查从其他私人功能中获得的价值。
假设我有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"
- 对于类别。它应该只检查是否存在。如果存在,则应发送数据为真,然后其他功能应停止处理并给我错误消息。