Rya*_*Lim 6 php laravel laravel-5 laravel-blade
在布局中,我正在使用foreach语句显示所有类别(来自数据库)。在页面中,它是通过show()函数显示的页面。这似乎有点矛盾,因为我必须对布局使用all()并在页面中使用find()。有什么办法可以解决此问题?
public function show($id)
{
$categories = category::find($id);
$products = product::all()->sortBy('ID');
$categories = category::all()->sortBy('ID');
return view('categories', compact('products','categories'));
}
Run Code Online (Sandbox Code Playgroud)
在模板中
@foreach($categories as $category)
<li class="text-uppercase" style="white-space: nowrap;"><a href="{{ route('category.show', $category->id) }}">{{ $category->name}}</a></li>
@endforeach
Run Code Online (Sandbox Code Playgroud)
在页面本身(localhost:8000 / category / 5)中,我只想在页面中显示类别的名称,而不像上面的代码块那样显示所有内容。
{{ $categories->name}}
Run Code Online (Sandbox Code Playgroud)
当我将all()和find()都放在同一个函数中时
这是错误消息:
属性[名称]在此集合实例上不存在。(视图:C:............. \ resources \ views \ categories.blade.php)
您的问题是您已经覆盖了$categories变量。用单个类别(通过find())填充它之后,便可以使用所有类别(通过all())覆盖它。
您应该覆盖您的show()功能
public function show($id)
{
$category = category::find($id);
$products = product::all()->sortBy('ID');
$categories = category::all()->sortBy('ID');
return view('categories', compact('products','categories', 'category'));
}
Run Code Online (Sandbox Code Playgroud)
您应该使用$categories变量来获取所有类别,并使用它$category来获取单个类别。
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |