我正在尝试通过PHP文档检查字符串是否是有效的MongoId:http://php.net/manual/en/mongoid.isvalid.php
use MongoId;
if( !MongoId::isValid("id_string") )
{
return false;
}
然而,这样做我最终得到:
致命错误:调用未定义的方法MongoId :: isValid()
我在这里缺少什么?
答案 0 :(得分:2)
我自己也遇到了这个错误......似乎这是传统的mongo扩展,它允许使用isValid()
方法。 new mongoDB扩展没有等效的方法。
在新的mongoDB扩展下,如果你尝试构造一个无效的MongoId,它将抛出InvalidArgumentException
。文档:http://php.net/manual/en/class.mongodb-driver-exception-invalidargumentexception.php
我已经创建了一个非常基本的函数来进行某种程度的检查,即id尽可能接近MongoId的正确格式:
function isValidMongoId($id) {
return is_string($id) && strlen($id) == 24 && ctype_xdigit($id);
}