拉拉维尔11:在某些路线线上详细介绍时,资源路线无法正常工作。

问题描述 投票:0回答:1
LARAVER11这里

web.php

Route::resource('event', EventController::class);

WorksOK

当我替换这条线时

Route::get('/event', [EventController::class, 'index'])->name('event.index'); Route::get('/event/{id}', [EventController::class, 'show'])->name('event.show');

表示不再工作并发送此错误:

在null

上读取属性“描述”

由于对象未传递给显示方法。我用DD($ event)看到了这一点; $ event是应该传递给Show方法的对象。

我需要详细介绍每条路由,而不是简单地使用route ::资源,因为索引和显示应该是公开的,其余的应该得到认证。

任何暗示?谢谢你

路由::资源应像两个路线相同的方式工作:: get lines工作

好像我写了

Route::get('event/{event}', [EventController::class, 'show'])->name('event.show');

它有效,但我不明白为什么。 (我放置事件而不是ID)

我做的与此视频相同

https://www.youtube.com/watch?v =eunwzjuvkca

但是当我这样做时,它不起作用

我的路线现在看起来像这样:

//guest Route::get('event', [EventController::class, 'index'])->name('event.index'); Route::get('event/{event}', [EventController::class, 'show'])->name('event.show'); // authenticated Route::middleware(['auth'])->group(function () { Route::get('/event/create', [EventController::class, 'create'])->name('event.create'); Route::post('/event', [EventController::class, 'store'])->name('event.store'); Route::get('/event/{event}/edit', [EventController::class, 'edit'])->name('event.edit'); Route::put('/event/{event}', [EventController::class, 'update'])->name('event.update'); Route::delete('/event/{event}', [EventController::class, 'destroy'])->name('event.destroy'); });

但Localhost:8000/evert/create返回404。多么奇怪。有提示吗?

i发现,秩序对于宣布拉拉维尔路线很重要,有些人可以贪婪。
第一个示例不起作用,因为第一行优先于第二行
Route::get('/event/{event}', [EventController::class, 'show'])->name('event.show'); Route::get('/event/create', [EventController::class, 'create'])->name('event.create');

正确编写路线的正确方法低于
laravel routes get resources laravel-11
1个回答
0
投票
Route::get('/event/create', [EventController::class, 'create'])->name('event.create'); Route::get('/event/{event}', [EventController::class, 'show'])->name('event.show');

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.