在Laravel中无法识别路由

wfypjpf4  于 2023-05-19  发布在  其他
关注(0)|答案(2)|浏览(162)

我有一个动态导航(所有的名字,图标,链接,和所有其他的东西来自表).但是当我尝试使用链接时,我得到错误Route [soon] not defined

@foreach($categories as $item)
                    <li class="sidebar-dropdown">
                        <a class="fw-bold" href="javascript:void(0)"><i class="uil {{ $item->icon }} me-2 d-inline-block"></i>{{ $item->title }}</a>
                        <div class="sidebar-submenu">
                            @foreach($item['children'] as $child)
                                <ul>
                                    <li><a href="{{ route($child->link)}}">{{ $child->title }}</a></li>
                                </ul>
                            @endforeach
                        </div>
                    </li>
                @endforeach

Web路由代码:

Route::prefix(config('admintw.prefix'))->middleware(['auth', 
'verified', 'activeUser', 'IpCheckMiddleware'])->group(function () {
     Route::get('soon', \App\Http\Livewire\Admin\Miscellaneous\Comingsoon::class)->name('soon');
});

在表的链接列中有“soon”。

hjzp0vay

hjzp0vay1#

错误消息“Route [soon] not defined”表示Laravel无法找到名称为“soon”的命名路由。在您的例子中,问题是表中的link列存储的是文字字符串“soon”,而不是路由名称。要解决这个问题,您需要修改表中的link列,以存储路由的名称而不是文字字符串。
假设导航链接的标题与路线的名称相同,您可以像这样修改代码:

@foreach($item['children'] as $child)
    <ul>
        <li><a href="{{ route($child->title)}}">{{ $child->title }}</a></li>
    </ul>
@endforeach
pcww981p

pcww981p2#

php artisan tinker并检查route('soon'),如果得到错误,则表示路由

'verified', 'activeUser', 'IpCheckMiddleware'])->group(function () {
     Route::get('soon', \App\Http\Livewire\Admin\Miscellaneous\Comingsoon::class)->name('soon');
});

没有经过处理
试着用一些简单的东西比如

Route::get('soon', \App\Http\Livewire\Admin\Miscellaneous\Comingsoon::class)->name('soon');

相关问题