Zend Properl filterBy with collat​​e

时间:2014-11-20 11:28:08

标签: php zend-framework propel

我是推进者的新手,我有一个问题。我如何进入filterBy整理? 我需要这样的东西:

SELECT id, name, email FROM users WHERE email COLLATE utf8_bin = "teSt@domain.com"

我需要区分大小写的搜索,但我现在无法更改表格架构。 我在尝试:

$model = Model_Propel_Users::create()->filterByName('COLLATE utf8_bin ' . $name)

但它不起作用。 有人有想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,或许对某人有用。

首先,我在模型中添加了新方法:

public function findUser($email)
{
    $criteria = new Criteria();

    $conn = Propel::getConnection();
    $cq = Model_Propel_Users::EMAIL . ' COLLATE utf8_bin LIKE ' . $conn->quote($email);
    $criteria->add(null, $cq, Criteria::CUSTOM);
    $user = Model_Propel_Users::doSelectOne($criteria);
    return $user;
}

然后拨打电话获取结果:

$user = Model_Propel_Users::create()->findUser($email);