我正在尝试将用户与评论相关联。我能够将正确的评论与每部电影联系起来。如果我使用{{$comment->user_id}}
,它将在注释旁边显示用户ID,但它会从评论表中获取此信息。我希望显示在用户表中找到的用户名。
我的评论表:
Schema::create('comments', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id');
$table->integer('film_id');
$table->string('body');
$table->timestamps();
我的用户表:
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
我的评论课:
class Comment extends Model
{
public function film()
{
return $this->belongsTo(Film::class);
}
public function user()
{
return $this->belongsTo(User::class);
}
我的用户类
public function comments()
{
return $this->hasMany(Comment::class);
}
我的控制器:
/* Displays list of films*/
public function display()
{
$films = Film::all();
return view('list', compact('films'));
}
/* Displays comments for a film*/
public function comment($id)
{
return view('comment', ['film' => Film::find(1)]);
}
我想也许我可以在评论函数中传递另一个参数:
public function comment($id)
{
$user = User::find($id)
return view('comment', ['film' => Film::find(1)], ['user' => $user]);
但这不起作用。我得到以下错误。虽然我知道它的语法错误但我认为这不是我能做的事情。
解析错误:语法错误,意外“返回”(T_RETURN)
答案 0 :(得分:1)
您忘记在;
之后放置User::find($id)
,这就是您收到此错误的原因。
您也可以使用以下语法:
public function comment($id)
{
return view('comment', [
'film' => Film::find(1),
'user' => User::find($id)
]);
}