【问题标题】:dynamically returning views by a foreach loop通过 foreach 循环动态返回视图
【发布时间】:2019-04-15 08:58:07
【问题描述】:

我有一个由我的数据库运行的 foreach 循环:

<div id="nav" >
  @foreach(\App\Categories::whereNull('parent_id')->get() as $category)
     <a id="link1" href="{{ route('showCategory' , $category->id) }}" ><div class="link">{{ $category->name }}</div></a>
  @endforeach
</div>

我想要添加的 foreach 链接,它动态地知道他到刀片的路径。

我应该在这里做什么?

我的 web.php:

Route::get('/category/{category}', 'PagesController@showCategory')->name('showCategory');

我的控制器:

public function showCategory(Categories $category) {

}

【问题讨论】:

    标签: database laravel dynamic foreach controller


    【解决方案1】:

    我猜您想为每个类别创建一个链接,该链接指向显示有关所选类别的更多信息的页面。

    您在其中为所有类别创建链接的刀片文件对我来说似乎很好,但我建议您将您的路由文件更改为:

    Route::get('/category/{id}', 'PagesController@showCategory')-&gt;name('showCategory');

    那么对于你的showCategory 函数,你需要这样的东西:

    public function showCategory($id) {
        $category = Categories::find($id);
    
        // i used categories.show here, change it to whatever view you use
        return view('categories.show')->with('category', $category);
    }
    

    然后在您的categories.show 视图中,您可以像这样访问类别的属性:

    $category-&gt;id; // or whatever you want to display


    根据 OP 的要求:数据库中指向其页面的前 5 个类别:


    在您的控制器中:

    public function myFunction()
    {
       $categories = Categories::all()->take(5)->get();
    
       return view('your.view')->with('categories', $categories);
    }
    

    在您的刀片视图中(假设该类别的视图位于:/category/id):

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

    【讨论】:

    • 感谢您的回答。如果我有 5 个不同的链接并且每个链接都有不同的“href”,您会建议如何在 categories.show 中进行操作?
    • 一个类别中有 5 个不同的链接?或者 5 个不同的类别导致他们的页面?
    • 5 个不同类别的页面是我的意思。
    • 您想从您的数据库中获得 5 个随机类别吗?他们都是?或前 5 个或后 5 个。
    • 前 5 个类别。
    猜你喜欢
    • 2018-06-20
    • 2018-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    相关资源
    最近更新 更多