我正在使用Laravel 5和bootstrap编写博客。 @if控件结构似乎没有在我的blade.php中以这种方式编写:
@section('title')
@if($post)
<p> {{ $post->title}} </p>
@if(!Auth::guest() && ($post->name == Auth::user()->id || Auth::user()->is_admin()))
<button type="button" class="btn btn-default"><a href="{{ url('news.edit')}}">Editer</a></button>
@endif
@endif
@endsection
这是调用刀片的PostController中的函数:
public function index()
{
$post = Post::get();
return view('posts.index', compact('post'));
}
我遇到这个错误: 未定义的属性:Illuminate \ Database \ Eloquent \ Collection :: $ title
我是PHP的新手,我似乎无法看到问题出在哪里。如果您有任何线索,请提供帮助。
答案 0 :(得分:0)
在调用此视图时,您需要附加"post"
变量。在您的一个控制器方法中。
在您编辑的问题中,"title"
丢失了。传递"title"
变量和帖子。基本上,您希望在视图中未定义的视图中使用的任何变量(全局变量除外)都需要从控制器显式传递给它。
编辑集合错误。
你的post
变量实际上是一个数组,遍历它并访问帖子数组的每个成员的帖子标题或帖子的任何属性