$post->comments() としたらコメントが取得できないのはなぜですか?

$posts->comment にアクセスすると Laravel は自動で comment() のリレーションから結果を取得して返してくれます。
2023年7月26日
ユーザー

お世話になっております。

show.blade.phpの下記コードの部分について質問がございます。

@foreach ($post->comments()->latest()->get() as $comment)

動画の通り、@foreach ($post->comments as $comment) とすると問題なく動くのですが
@foreach ($post->comments() as $comment) のように () をつけると、
コメントが取得できなくなってしまいます。

他の方の質問も拝見し
$post->comments によって、comments メソッドにアクセスしているという解釈をしているのですが
それであれば、$post->comments() としても、コメントを取得できるのでは?と考えています。

メソッドを呼び出しているのに () をつけると
コメントを取得できなくなる理由がわからないためご教授いただけますでしょうか。

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?

このレッスンの質問と回答(1)