如何覆盖 Laravel 资源路由?

麦克考特

我不认为这篇文章如何覆盖 laravel 资源路由默认方法?解决了我的问题。

正常的资源路由是“索引”显示所有项目。我想要做的是让“索引”显示特定 ID 的所有相关项目。

因此,当我从列表中选择教室时,我希望我正在调用的索引操作显示该特定教室的所有人,因为它是索引功能。

所以我替换了默认的资源路由

//Route::resources(['attendees' => 'attendeesController']);

Route::resource('attendees', 'attendeesController')->names([
    'index'   => 'attendees.index',
    'store'   => 'attendees.store',
    'create'  => 'attendees.create',
    'show'    => 'attendees.evaluation',
    'update'  => 'attendees.update',
    'destroy' => 'attendees.destroy',
    'edit'    => 'attendees.edit',
]);

所以在我的控制器中,我有这个:

public function index(Request $request,$id)
{
    dd($request);
    ...
}

在我看来,在特定的教室 ID 上,我有这个

<a href="{{route('attendees.index', ['classroom' => $data->id])}}">{{$data->Reference}}
  • 据我所知,我正在将参数传递给控制器​​。
  • 并且控制器设置为期望 $id 参数

那为什么我会得到这个?我猜一些非常基本的东西,但我看不出是什么。

Type error: Too few arguments to function
App\Http\Controllers\AttendeesController::index(), 
1 passed and exactly 2 expected
维卡斯奈杜

默认情况下,索引操作需要一个,$id因此您可以将其设置为 null

public function index(Request $request,$id = null)

此外,如果您想$id根据文档 URL获取特定项目的相关项目,那么attendees/123它将被重定向到show函数。因此,您还需要编辑该路线。而不是尝试将查询参数传递给索引路由并使用查询参数,您可以获得相关数据。而不是attendees/123它会attendees?id=123

查询参数设置为显示相关项,否则显示索引。如果您仍然想通过索引实现它,则需要更改如下路线

Route::resource('attendees', 'AttendeesController',['only' => ['index', 'create', 'store']]);

Route::get('/attendees/{id}', 'AttendeesController@index');

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel-将资源路由覆盖到其他路由过滤器组中

来自分类Dev

如何避免在Laravel中覆盖路由?

来自分类Dev

Laravel路由资源问题

来自分类Dev

如何在Laravel 4上路由子资源?

来自分类Dev

如何在Laravel中更改嵌套资源路由的名称?

来自分类Dev

如何在Laravel 4上路由子资源?

来自分类Dev

Laravel 4资源路由和认证

来自分类Dev

Laravel资源给路由增加了参数

来自分类Dev

Laravel 5.1资源路由无法正常工作

来自分类Dev

Laravel 5:无法发布以路由资源

来自分类Dev

Laravel路由资源MethodNotAllowedHttpException在destroy方法上

来自分类Dev

Laravel资源路由中的多个通配符

来自分类Dev

从我的域中找不到Laravel路由资源

来自分类Dev

Laravel 路由资源 GET 和 POST

来自分类Dev

带有资源的 Laravel 路由助手

来自分类Dev

Laravel 资源路由命名前缀

来自分类Dev

Laravel使用Nginx路由覆盖phpmyadmin路径

来自分类Dev

Laravel Modules + VueJS,路由被覆盖

来自分类Dev

Laravel使用Nginx路由覆盖phpmyadmin路径

来自分类Dev

如何对同一资源使用多个路由

来自分类Dev

如何设置资源丰富的路由的URL?

来自分类Dev

带有名称空间的laravel路由资源

来自分类Dev

无需某些方法即可在Laravel中创建资源路由

来自分类Dev

使用资源控制器的Laravel子域路由

来自分类Dev

在Laravel上获取父级资源路由模型?

来自分类Dev

Laravel为资源控制器命名路由

来自分类Dev

Laravel 5资源丰富的路由以及中间件

来自分类Dev

Laravel路由的自定义方法而不是资源

来自分类Dev

Laravel子域路由和资源控制器