Symfony2中的特征错误

Hak*_*kim 1 php traits symfony

我需要在symfony2中使用Traits.扩展不同父母的不同存储库仍然使用一些常用方法.我创建了一个包含这些常用方法的特征.不幸的是,当我调用该动作时,Symfony2抛出一个错误说:

Parse Error: syntax error, unexpected 'Trait' (T_TRAIT), expecting identifier (T_STRING)
in src/AppBundle/Entity/Repository/CategoryRepository.php line 14
Run Code Online (Sandbox Code Playgroud)

这是一个存储库

namespace AppBundle\Entity\Repository;

use Gedmo\Tree\Entity\Repository\NestedTreeRepository;
use AppBundle\Trait\HasDomainRepositoryTrait;
/**
 * CategoryRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class CategoryRepository extends NestedTreeRepository
{
    use HasDomainRepositoryTrait;

    public function search($domain, $onlyActive, $searchString = null)
    {
        $builder = $this->createBaseQuery($domain, $onlyActive);

        if ($searchString) {
            $builder
                    ->andWhere('e.name LIKE :searchString')
                    ->setParameter('searchString', '%'.strtolower($searchString).'%')
                    ;
        }

        return $builder;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是特质:

namespace AppBundle\Trait;

trait HasDomainRepositoryTrait
{
    public function createBaseQuery($domain, $onlyActive = false)
    {
        $builder = $this->createQueryBuilder('e');

        if ($domain) {
            $builder
                    ->andWhere('e.domain = :domain')
                    ->setParameter('domain', $domain)
                    ;
        }

        if ($onlyActive) {
            $qb->andWhere(sprintf('e.enabled = %s', $onlyActive));
        }

        return $builder;
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用PHP 5.6和Traits工作(我在项目之外运行了一个简单的测试).我不明白什么是错的.

Jes*_*ica 9

您可能无法将名称空间设为"特征".尝试将名称空间更改为其他名称.