我试图在代码中到处都有常量,所以我不必只粘数字,我知道这是不好的做法。
因此,在我的根文件夹中,放置了一个类常量,如下所示:
namespace App;
class Constants{
public const FREE_TIER = 0;
}
因此,我包括“ use App \ Constants;”。在我的存储库类中。
这是我尝试访问以下常量类的函数:
use App\Constants; /* earlier on */
/**
* @param User $user
* @return array
*/
public function countFreeTiers() : array
{
$qb = $this->createQueryBuilder('t');
$qb->select('COUNT(t.tierNumber)')
->where('t.tierNumber = :freeTier')
->groupBy('t.tierNumber')
->orderBy('t.tierNumber', 'ASC')
->setParameter('freeTier', Constants::FREE_TIER /* error here */)
->setParameter('true', true);
$query = $qb->getQuery();
return $query->getResult();
}
这是我得到的错误:
Attempted to load class "Constants" from namespace "App".
Did you forget a "use" statement for another namespace?
我不允许只使用“ App”名称空间吗?
答案 0 :(得分:1)
这是cerad的解决方案,不是我的。
我的问题是我的Constants.php位于项目的根文件夹中。
我不得不将Constants.php文件移动到src文件夹中,因此将其放在src的根目录(而不是项目的根目录)中进行了修复。
答案 1 :(得分:0)
您可以尝试将类文件放入“ src / Utilities”,然后symfony会自动加载它。