【问题标题】:Undefined variable [closed]未定义的变量[关闭]
【发布时间】:2016-01-10 12:58:08
【问题描述】:

由于某些我猜是愚蠢的原因,我仍然收到此错误。我正在关注 Laracast 基础教程,然后我决定创建自己的应用程序,它是一样的。可能是我搞砸了,看不到。

这是错误:

未定义变量:电影(查看:C:\Users\username\PhpstormProjects\movie_app\resources\views\movies\show.blade.php)

这是我的控制器:

public function show($id)
{
    $movie = Movie::findOrFail($id);
    return view('movies.show', compact('movie'));
}

查看:

@extends('layouts.app')
@section('content')
    @foreach($movies as $movie)
        <h4>{{$movie->name}}</h4>
    @endforeach
@endsection

【问题讨论】:

标签: php laravel laravel-5


【解决方案1】:

因为您没有返回集合,所以您不能使用foreach

echo电影直接调用对象名:

@extends('layouts.app')
@section('content')
   <h4>{{$movie->name}}</h4>
@endsection

但您在视图中调用了错误的变量名。你返回movie 而不是movies

【讨论】:

  • 知道了:“尝试获取非对象的属性”如果我更改控制器,我仍然会收到相同的错误 :(.
  • 我的错。等待将解决我的答案
  • 我已经更新了我的答案。试试那个
  • 成功了。所以,如果我的数据库中只有一部电影,它就不会工作,因为它还不是一个集合,对吗?
  • 不。它不依赖于数据库。您可以拥有 500 部电影,但问题在于您的查询返回结果是什么。您以单个项目而不是集合的形式返回它。在这里阅读更多:laravel.com/docs/5.2/eloquent#retrieving-multiple-models
猜你喜欢
  • 2021-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-06
  • 2021-08-03
  • 1970-01-01
  • 2020-04-12
  • 1970-01-01
相关资源
最近更新 更多