Laravel 5.6。路由模型绑定
Laravel 5.6. Route model bindung
你好,我正在尝试创建自己的 laravel 包,它有两个控制器资源,它们有单个控制器和模型 Post
Route::resource('posts', \vendor\package\Controllers\PostsController::class);
Route::resource('categories', \vendor\package\Controllers\PostsController::class);
我在PostsController
中的方法是show(Post $post)
如果我打开 link http://localhost/posts/1,$post
的属性元素在 show
方法中不为空。
但是当我打开link http://localhost/categories/1时,$post
的属性元素是空的。
如何获取 resource
categories
的 Post 数据?
P.S。帖子和类别之间的区别是数据库中列 post_type
的值。
将 Route::model('categories', App\Post::class);
添加到
中的 boot()
方法
./app/Providers/RouteServiceProvider.php
您可以定义在使用资源路由时为生成的路由命名的路由参数。
这应该是您需要进行的唯一更改:
Route::resource(
'categories',
\vendor\package\Controllers\PostsController::class,
['parameters' => ['categories' => 'post']]
);
现在路由参数是post
:
GET categories/{post}
GET categories/{post}/edit
...
Laravel 5.6 Docs - Controllers - Naming Resource Route Parameters
你好,我正在尝试创建自己的 laravel 包,它有两个控制器资源,它们有单个控制器和模型 Post
Route::resource('posts', \vendor\package\Controllers\PostsController::class);
Route::resource('categories', \vendor\package\Controllers\PostsController::class);
我在PostsController
中的方法是show(Post $post)
如果我打开 link http://localhost/posts/1,$post
的属性元素在 show
方法中不为空。
但是当我打开link http://localhost/categories/1时,$post
的属性元素是空的。
如何获取 resource
categories
的 Post 数据?
P.S。帖子和类别之间的区别是数据库中列 post_type
的值。
将 Route::model('categories', App\Post::class);
添加到
boot()
方法
./app/Providers/RouteServiceProvider.php
您可以定义在使用资源路由时为生成的路由命名的路由参数。
这应该是您需要进行的唯一更改:
Route::resource(
'categories',
\vendor\package\Controllers\PostsController::class,
['parameters' => ['categories' => 'post']]
);
现在路由参数是post
:
GET categories/{post}
GET categories/{post}/edit
...
Laravel 5.6 Docs - Controllers - Naming Resource Route Parameters