I am following the video Laravel 5.4 From Scratch: Eloquent Relationships and Comments and have this error:
Parse error: syntax error, unexpected ')', expecting '['
I am getting it when I try to replicate the video and put:
@foreach ($film->comment as comment)
<p>{{$comment->body}}</p>
@endforeach
This is the section of code being highlighted on the error page:
<?php $__currentLoopData = $film->comment; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as comment): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
However when I output just {{$film->comments}}
it does give me a result:
[{"id":1,"film_id":"1","body":"I loved this film!","created_at":null,"updated_at":null}]
I have a film table and comment table. In tinker it displays as I want e.g.
>>> $c = App\Comment::first();
=> App\Comment {#751
id: "1",
film_id: "1",
body: "I loved this film!",
created_at: null,
updated_at: null, }
>>> $c->film;
=> App\Film {#746
id: "1",
title: "The Godfather",
director: "Francis Ford Coppola",
description: "It stars Marlon Brando and Al Pacino as the leaders of a fictional New York crime family. The story, spanning 1945 to 1955, chronicles the family under the patriarch Vito Corleone (Brando), focusing on the transformation of Michael Corleone (Pacino) from reluctant family outsider to ruthless mafia boss.",
date: "1972-03-24",
created_at: null,
updated_at: null, }
Below are my models:
Comment Model:
class Comment extends Model
{
public function film()
{
return $this->belongsTo(Film::class);
}
}
Film Model:
class Film extends Model
{
public function comments()
{
return $this->hasMany(Comment::class);
}
}
Any help much appreciated!