分享动态渲染category的方法

背景

希望直接在数据库里添加category数据,页面上可以动态渲染出来对应的分类。
这个也是我第二次学习课程的目的,希望可以自己优化一下,哪怕一点点。

思路

需要先了解与所有视图共享数据的知识。

大致的意思就是在应用提供者app\Providers\AppServiceProvider.php里面的boot方法里面调用视图 Facade 的 share 方法

<?php

namespace App\Providers;

use Illuminate\Support\Facades\View;

class AppServiceProvider extends ServiceProvider
{
    ...
    public function boot()
    {
        .
        .
        View::share('categories',Category::all());
        .
        .
    }
    ...
}

这样我还不确定是否可以在视图中获取这个数据,我就在resources\views\layouts\_header.blade.php中的Larabbs 旁边写了如下代码

.
.
<a  class="navbar-brand "  href="{{  url('/') }}">
      LaraBBS {{ $categories->find(1)}}
 </a>
.
.

这样一来,如果我上述方法是可行的话,那么在视图里面应该是可以打印出来第一个category的对象。尝试一波之后,果然是ok的。截图如下

分享动态渲染category的方法

这样一来我就可以通过模板中的循环来输出categoryname属性了。手册中关于循环的介绍。下面是部分代码和截图

<div class="collapse navbar-collapse" id="navbarSupportedContent">
      <!-- Left Side Of Navbar -->
      <ul class="navbar-nav mr-auto">
        <li class="nav-item @if (request()->url() == route('topics.index' )) active
          @endif"><a class="nav-link" href="{{ route('topics.index') }}">话题</a></li>

        @foreach ($categories as $category)
        {{$category->name}}
        @endforeach

      </ul>

分享动态渲染category的方法

接下来就是让他可点击并选中之后处于active的状态。这里参照的是李小明的这篇讨论说个简单易懂不需要任何扩展直接使用的方法自动 url 选择循环的介绍
简单易懂不需要任何扩展直接使用的方法自动 url 选择

<li class="nav-item @if (request()->url() == route('categories.show', 4 )) active
@endif"><a class="nav-link" href="{{ route('categories.show', 4) }}">公告</a></li>

最后的修改结果如下

   <!-- Left Side Of Navbar -->
      <ul class="navbar-nav mr-auto">
        <li class="nav-item "><a class="nav-link @if (request()->url() == route('topics.index' )) active @endif" href="{{ route('topics.index') }}">话题</a></li>
        @foreach ($categories as $category)
        <li class="nav-item ">
          <a class="nav-link @if (request()->url() == route('categories.show', $category->id )) active @endif" href="{{ route('categories.show', $category->id ) }}">{{$category->name}}</a>
        </li>
        @endforeach

      </ul>
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!