【问题标题】:Laravel 5.6 - A shared name for route resourcesLaravel 5.6 - 路由资源的共享名称
【发布时间】:2018-09-24 14:41:00
【问题描述】:

在创建管理菜单时,我想知道如何设置活动类项目。如果控制器正在显示、编辑或执行其他操作,菜单项必须保持活动状态。

sidebar.blade.php

<li class="nav-item">
    <a class="nav-link {{ (Route::current()->getName() == 'posts' ? 'active' : '') }}" href="/admin/posts">Posts</a>
</li>

路由/web.php

// POSTS
Route::resource('/admin/posts', 'Admin\PostController');

如何为所有资源(索引、创建、显示等)设置共享名?

我希望做这样的事情,但是......

Route::resource('/admin/posts', 'Admin\PostController')->name('posts');

谢谢

【问题讨论】:

  • 您可以使用@if(Route::is('posts')) active @endif 作为上述检查的简写。它还支持通配符:@if(Route::is('admin.*')) active @endif,它将匹配所有以admin. 前缀开头的路由。
  • @Namoshek 很好!这正是我一直在寻找的

标签: php laravel-5 routes


【解决方案1】:

命名资源路径

默认情况下,所有资源控制器动作都有一个路由名称;但是,您可以通过传递带有选项的名称数组来覆盖这些名称:

Route::resource('photos', 'PhotoController')->names([
    'create' => 'photos.build'
]);

您可以在documentation 中找到更多选项。

【讨论】:

  • 我可以为所有操作设置相同的名称吗?这是个好主意吗?
  • 它们应该是每条路线的唯一名称,但有一个共同的前缀来对它们进行分组。
猜你喜欢
  • 2017-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-20
  • 2015-03-04
  • 1970-01-01
  • 2019-06-30
相关资源
最近更新 更多