laravel - 如何在数组 Laravel 中仅指定资源的方法
问题描述
在 web.php 我有这个 Route::resources 方法
Route::resources([
'products' => App\Http\Controllers\ProductsController::class,
'categories' => App\Http\Controllers\CategoriesController::class,
'page-info' => App\Http\Controllers\PageInfoController::class,
]);
如何仅指定index
,edit
和update
'page-info' 路由?以及如何为每条路线添加名称?我知道我可以这样做
Route::resource('products', ProductsController::class);
Route::resource('page-info', PageInfoController::class)->only([
'index', 'edit', 'update'
]);
//itd...
但我喜欢阵列之一resources
,并认为它也是可能的
解决方案
您不能做您想做的事,如果文档没有明确说明您可以或不可以,您可以随时查看源代码。
因此,Laravel 8.x 的源代码有:
/**
* Register an array of resource controllers.
*
* @param array $resources
* @param array $options
* @return void
*/
public function resources(array $resources, array $options = [])
{
foreach ($resources as $name => $controller) {
$this->resource($name, $controller, $options);
}
}
所以,你可以做
Route::resources([
'products' => App\Http\Controllers\ProductsController::class,
'categories' => App\Http\Controllers\CategoriesController::class,
'page-info' => App\Http\Controllers\PageInfoController::class,
], $options);
但是代码显示它将共享所有resources
要创建的选项,所以答案是否定的,你不能(至少我正在查看源代码)。
推荐阅读
- javascript - sinon.js:存根调用不会增加 callCount
- mongodb - asyncData 从 db 获取配置文件
- vb.net - 主题改变事件?
- ios - 使 swift 协议符合 Hashable
- python - 使用 python 使用 subprocess 模块设置环境
- r - 基于多个列值创建具有连续序列和代表的新列
- java - 将文本视图设置为可点击按钮
- python - 如何将温度数据输出到 csv 文件中?
- azure - 注册新的客户端方法后是否应该停止并重新启动 SignalR?或者可以连续调用 .start 吗?
- node.js - 使用云功能在 n 次后删除 firestore 中的数据