未定义的变量:刀片laravel 5.6中的类别

时间:2018-08-12 22:28:30

标签: php laravel controller laravel-blade php-7.1

我正在尝试在站点地图网页中显示我的类别 这是我的CategoryController.php

namespace App\Http\Controllers;
use App\Category;
use Illuminate\Http\Request;
class CategoryController extends Controller
{

public function site()
   {
    $categories = Category::all();
    #   return view('template.sitemap', compact('categories'));
    #   return view('template.sitemap',['categories' => $categories]);
     return view('template.sitemap')->with(compact('categories'));
    #   return view('template.sitemap')->withData($categories);
    #   return view('template.sitemap')->with('categories',$categories);
    #   return view('template.sitemap', compact('categories'));
  }
}

我使用的#表示我使用了不同的方法来传递变量以查看 我单独使用每种方法,但没有一种无效。

这是模板文件夹中我的站点地图刀片文件的一部分,我使用类别变量template.sitempa.blade.php

        <div id="content" class="col-sm-12">
                <h1 class="title"> site map</h1>
                <div class="row">
                    <div class="col-sm-3 hidden-xs hidden-sm sitemap-icon"><i class="fa fa-sitemap"></i></div>
                    <div class="col-md-5 col-sm-6">
                        <ul class="sitemap">
                                <ul>
                                    @foreach($categories as $category)
                                        <li><a href="category.html">{{$category['name']}}</a></li>
                                    @endforeach

                                </ul>
                        </ul>
                    </div>
                </div>
            </div>

我使用了获取变量和传递的所有方法,但是都没有用 你有什么建议吗?

3 个答案:

答案 0 :(得分:0)

尝试一下:

public function site()
{
    return view('template.sitemap')->withCategories(Category::all());
}

然后在您看来,执行以下操作:

dd($categories);

要知道您是否正在接收数据。如果没有问题,请根据需要使用它:

@foreach($categories as $category)
    <li><a href="category.html">{{$category['name']}}</a></li>
@endforeach

答案 1 :(得分:0)

您的刀片文件应位于目录template/sitemap.blade.php中,而不是template.sitempa.blade.php

public function site()
{
    $categories = Category::all();
    return view('template.sitemap', compact('categories'));
}

@foreach($categories as $category)
    <li><a href="category.html">{{ $category->name }}</a></li>
@endforeach

答案 2 :(得分:0)

尝试一下

public function site()
{
$this->data['categories'] = Category::all();
return view('template.sitemap',$this->data);
}

可见

@foreach($categories as $category)
<li><a href="category.html">{{$category->name}}</a></li>
@endforeach