1
の代わりに返され、私はこれを持っている:Symfony3文字列は、私のUserエンティティでは整数
/**
* @ORM\Entity
* @ORM\Table(name="users")
*/
class User extends BaseUser
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var \Doctrine\Common\Collections\ArrayCollection
* @ORM\OneToMany(targetEntity="Blog\BlogBundle\Entity \Entry",mappedBy="author")
*/
protected $entries;
これは私の完全なエントリ・エンティティです。
このコードから、著者IDを取得しようとしていますが、著者名が返されています。私は最後に文字列に変換しているからです。私はそれを削除した場合、私はこのエラーを取得:symfony2 Catchable Fatal Error: Object of class could not be converted to string
リンクを取得するには、私は次のことをやっている:
内部authorAction($id)
をトリガーバンドルのrouting.ymlで
id
のパラメータでパス
author
の設定
- BookController。渡される整数が必要です。
authorAction($id)
はDoctrine Managerを設定し、という著者がすべての書籍を返し、twigテンプレートをレンダリングするリポジトリにgetAllBooksByAuthor()
という関数を呼び出します。- リンクはtwigテンプレートで生成されますが、渡されるパラメータは作者名です。これは整数ではなく文字列です。
著者名の代わりに著者IDが渡されるようにするにはどうすればよいですか?
私はここにこだわっており、文字列と整数の両方を扱えるようにするにはEntry
エンティティが必要です。
あなたの 'getAuthorId'メソッドは、idではなくUserエンティティオブジェクトを返します。たぶん 'return $ this-> author-> getId();' – JimL
これは簡単です@JimL haha。 1日にSymfonyが多すぎます。ありがとう! – kamil1995b