0

我想获取并列出与登录用户相同idempresa的所有用户。idempresa与表中的用户相关,sf_guard_profile是的,我在schema.yml文件中声明了该关系。我想在写一个方法,sfGuardUserTable.class.php但我不太确定它是否会起作用,换句话说,我不知道在哪里触摸或处理这个。任何人都可以指出我正确的方向吗?这是方法(未完成):

public function getUsersByCompany() {
        $user = sfContext::getInstance()->getUser()->getProfile()->getIdEmpresa();
        $q = $this->createQuery('g');

        return $q;
}

有什么建议吗?

4

1 回答 1

2

使用 sfContext::getInstance() 通常不是一个好习惯。阅读这篇文章http://webmozarts.com/2009/07/01/why-sfcontextgetinstance-is-bad/

向您的 中添加静态方法怎么样sfGuardUserTable.class.php,例如

// \lib\form\sfGuardUserTable.class.php
static public function getUsersByIdEmpresa($idempresa)
{
    //...
    $q->andWhere('idempressa = ?', $idempresa);

    return $q->execute(); 
}

然后在您的控制器中或从您需要的地方调用它,例如

// \app\myApp\modules\myModule\actions\action.class.php
public function executeMyAction() {
    $profile = $this->getUser()->getProfile();
    $usersRelatedByIdempresa = sfGuardUserTable::getUsersByIdempresa($profile->getIdempresa());

    //...
}
于 2013-06-09T08:12:45.040 回答