如何使用数据库在 Laravel 中创建动态菜单栏

Posted

技术标签:

【中文标题】如何使用数据库在 Laravel 中创建动态菜单栏【英文标题】:How to Create Dynamic Menu bar in Laravel using Database 【发布时间】:2018-09-30 07:10:09 【问题描述】:

最初,我创建了静态导航栏,但现在我想将导航栏改进为动态。

我在那里尝试了控制器内部的功能,但它没有成功,因为该视图只管理一个路由。我需要在我的网页的每个页面中查看该视图。

SideMenuController.php

<?php 
   namespace App\Http\Controllers; 
   
   use Illuminate\Http\Request; 
   use App\admins; 
   use DB; 

  class SideMenuController extends Controller  
    public function index() 
      $details = DB::SELECT("SELECT Name FROM admins"); 
      return view('layout', compact('details')); 
     
  

web.php:

 Route::get('/user/test','SideMenuController@index');

test.blade.php:

命令 @foreach($details as $value) $value->名称 @endforeach

错误异常

(3/3) ErrorException 未定义变量:详细信息(查看: C:\xampp\htdocs\ERP\ERP_LAR\resources\views\test.blade.php)(查看: C:\xampp\htdocs\ERP\ERP_LAR\resources\views\test.blade.php)

【问题讨论】:

SideMenuController.php 请将您的代码编辑到您的问题中,而不是将其作为评论发布。 test.blade.php 中的 $details 包含什么。你能把这个打印出来贴在这里吗? $details 是从 SideMenuController 传递的变量,否则是 SQL 查询的结果 【参考方案1】:

有很多方法可以解决这个问题。

    您可以在您的项目中创建一个单独的 php 文件,例如“navbar.php”,并通过&lt;?php include('navbar.php'); ?&gt; 将其包含在内 您也可以使用类,但它更难。

【讨论】:

如何从数据库中获取数据以及如何在没有路由的情况下传递视图 这真的是评论,而不是答案。多一点代表,you will be able to post comments.【参考方案2】:

首先看一下 Laravel 中的 blade 引擎。

这个想法是您将在控制器中创建一个值并将其传递给视图。在这里,您将提取值并将正确的值放置在正确的位置。使用刀片,您甚至可以创建一个单独的 navigation.php 并在您需要的每个视图中生成它们。

【讨论】:

如何从数据库中获取数据以及如何在没有路由的情况下传递视图 您在控制器中获取数据并将其传递给视图。所有信息都可以在 laravel [网站][laravel.com/docs/5.6].在这里您还可以找到如何使用模型和数据库。

以上是关于如何使用数据库在 Laravel 中创建动态菜单栏的主要内容,如果未能解决你的问题,请参考以下文章

如何在 QMainWindow 中创建菜单栏

Java----如何在窗口中创建菜单

如何使用 Leanback 库在 Android TV 中创建顶部导航栏

如何在反应打字稿的导航栏中创建动态元素

axure如何实现多个按键触发同一个菜单?

尝试使用从另一个站点的 wordpress 数据库中动态获取的数据在新网页中创建菜单