問題:私は自分のクエリにユーザーIDを提供することで、すべての企業をユーザーに関連させようとしています。Symfony 2.7 - 列が見つかりません - 多対多の関係
私は取得していますエラー:
CRITICAL - Uncaught PHP Exception Doctrine\DBAL\Exception
\InvalidFieldNameException: "An exception occurred while executing 'SELECT
t0.id AS id_1, t0.name AS name_2, t0.phone AS phone_3, t0.fax AS fax_4,
t0.country AS country_5, t0.address AS address_6, t0.zipcode AS zipcode_7,
t0.state AS state_8, t0.city AS city_9, t0.notes AS notes_10 FROM company t0
WHERE company_representatives.user_id = ?' with params [177]:
SQLSTATE[42S22]: Column not found: 1054 Unknown column
'company_representatives.user_id' in 'where clause'" at C:\wamp64
\www\Portail\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver
\AbstractMySQLDriver.php line 71
私は私の実体 "ユーザー" と多対多の関係を持っている実体 "会社" を持っている
Company.php
/**
* @var ArrayCollection
*
* @ORM\ManyToMany(targetEntity="Dbm\UserBundle\Entity\User")
* @ORM\JoinTable(name="company_representatives")
*/
private $representatives;
User.phpはエンティティクラスのCompanyとは関係がありません。
ので、私の多対多の関係で、私は「のcompany_id」と「user_idの」
以下のコードが含まれていますcompany_representativesテーブルを持っているとすると、エラーが見つかりません「コラム」を引き起こすものです。
$companies = $em->getRepository('DbmPortalBundle:Company')->findBy(array('representatives' => $user->getId()));
-cacheは
をクリアされている - [マッピング]と[データベース] = OK教義を使用している場合:スキーマ:私のコンストラクタ
でのArrayCollectionとして-Iインスタンス化の代表を検証
編集
私は、今のところトリックを行う回避策を使用しました。これを後で修正したいと思うでしょう。私の回避策は、私のuser_idにリンクされているすべての企業のIDを見つけるために、自分の "company_representatives"テーブルに生のSQLを直接使用することです。それを使って私は会社のリポジトリにIDを持つ "FindBy"を使って、すべての企業のオブジェクトを取得することができます。
動作しませんでした。私はまたManyToMany双方向として私のエンティティを設定しようとしましたが、私はまだキャッシュクリア後に同じエラーを取得しています – Phil