読者です 読者をやめる 読者になる 読者になる

ユアマイスター株式会社エンジニアブログ

ユアマイスター株式会社のエンジニアが日々徒然。

エンジニアインターンでの学び

こんにちは!エンジニアインターンの土屋です!
今日は、エンジニアインターン、プログラミング始めたばかりの人がこんなエラーにぶつかるのでは?と思い
私がつまづいたところを記述していきたいと思います

Notice (8): Trying to get property of non-object 

こんなエラーがでました。。。。

書いていたコードは、

<?php foreach ($questions as $question): ?>
    <?= $question->answers->text ?>
<?php endforeach ;?>

コントローラーで->contain(‘answers’);を使って親モデルに紐づいた子モデルが持ってこれているのでという、
勝手なイメージで繋げて書いてしまった結果です。。。

原因
「answersは配列」なので、もう一度foreachか何かをして回してあげないとその中のtextは持って来れない

$answers = [answer1, answer2, answer3]


<?php foreach ($questions as $question): ?>
    <?php foreach ($question->answers as $answer): ?>
     <?= $answer->text ?>
    <?php endforeach ;?>
<?php endforeach ;?>

これで呼び出すことができました!!!