1

1対多の関係が機能しないのをたどり、1 対多の関係を作成しました

次のフィールドを持つユーザーテーブルがあります

 - id(primary key) 
 - name 
 - pwd

ユーザーが複数のファイルをアップロードできる添付ファイルテーブルがあります。つまり、1つのuser_idに複数のファイルが含まれています

  - id
  - user_id(foreignkey)
  - path

私のユーザーエンティティには次のコードが含まれています

namespace Repair\StoreBundle\Entity;

use Doctrine\Common\Collections\ArrayCollection;

use Doctrine\ORM\Mapping as ORM;

/**
 * users
 * @ORM\Entity(repositoryClass="Repair\StoreBundle\Entity\usersRepository")
 */

class users
{

/**
 * @var integer
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;
--some code --

/**

* @ORM\OneToMany(targetEntity="attachments", mappedBy="user_id")

*/

private $attachments;


public function __construct()

{

    $this->attachments= new ArrayCollection();
}


/**
 * Add attachments
 *
 * @param \Repair\StoreBundle\Entity\attachments $attachments
 * @return users
 */
public function addAttachment(\Repair\StoreBundle\Entity\attachments $attachments)
{
    $this->attachments[] = $attachments;

    return $this;
}

/**
 * Remove attachments
 *
 * @param \Repair\StoreBundle\Entity\attachments $attachments
 */
public function removeAttachment(\Repair\StoreBundle\Entity\attachments $attachments)
{
    $this->attachments->removeElement($attachments);
}

/**
 * Get attachments
 *
 * @return \Doctrine\Common\Collections\Collection 
 */
public function getAttachments()
{
    return $this->attachments;
}

これは私の添付ファイル エンティティです

namespace Repair\StoreBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * attachments
*/
class attachments
{
       -- some code for id--

private $id;

/**
 * @var integer

 * @ORM\Column(name="user_id", type="integer", nullable=false)

 * @ORM\ManyToOne(targetEntity="users", inversedBy="users")

 * @ORM\JoinColumn(name="user_id", referencedColumnName="user_id")

 */

protected $userId;

public function getId()

{

    return $this->id;

}
/**

 * Set userId

 * @param integer $userId

 * @return attachments

 */

public function setUserId($userId)

{

    $this->userId = $userId;

    return $this;
}

/**
 * Get userId
 *
 * @return integer

 */

public function getuserId() 

{

    return $this->userId;

}

   --Some code for paths -- 
}

エラーは表示されませんが、外部キーが設定されているかどうかを知る方法はphpmyadminに行き、主キーのみを表示するインデックスを確認しました.正しいかどうか、および外部キーが設定されているかどうかを確認する方法を教えてくださいか否か

4

1 に答える 1

0

問題はあなたの注釈にあります。添付エンティティには、このような注釈が必要です。

 * @ORM\ManyToOne(targetEntity="users", inversedBy="annotations")

列注釈を結合する必要はありません。しかし、そこに置きたい場合は、次のようにする必要があります。

 * @ORM\JoinColumn(name="user_id", referencedColumnName="id")

また、doctrine はエンティティ全体として扱うため、user_idbutと呼ぶべきではありません。user

于 2013-05-24T13:36:39.177 に答える