後から考えれば当たり前なんですけど、エラーが出た時に見直したのでメモ。findByで取得したentityからデータを取得しようとしたときに、「Error: Call to a member function on array」が発生。
エラーが出た理由
javascript
// get data where "userId" is testerXX
$userRepository = $entityManager->getRepository('AppBundle:User');
$userEntity = $userRepository->findBy(
['userId' => 'testerXX']
);
// Get "name" from the obtained entity
$userEntity->getName();
// Error: Call to a member function on array上記例はエラーが発生します。その理由は、findByで取得したEntityが配列になっているからです。
なので、そのままEntityとしてデータを取得するには、Entityを1つだけ取得する必要があります。
エラー解消法
取得したいデータが1レコードであるという前提がありますが、配列でなく、Entity一つを取得したらOKです。
javascript
// get data where "userId" is testerXX
$userRepository = $entityManager->getRepository('AppBundle:User');
$userEntity = $userRepository->findOneBy( ['userId' => 'testerXX'] );
// Get "name" from the obtained entity
$userEntity->getName();わかっている人にはそれはそうだよねという話なのですが、ちょっと引っかかったのでまとめてみました。
Symfonyおすすめ書籍
あまり種類がないのと、そもそもフレームワークとして情報が膨大なので、入門でも結構読み応えがあります。
📦Amazon で関連書籍・ツールを検索
Symfony PHP フレームワーク
Amazonで探す →(アソシエイトリンク)
