如何在 laravel 中为资源控制器添加自定义函数?
Posted
技术标签:
【中文标题】如何在 laravel 中为资源控制器添加自定义函数?【英文标题】:How do I add a custom function for a resource controller in laravel? 【发布时间】:2021-10-08 13:55:06 【问题描述】:我正在尝试为我用作 ResourceController 的 Controller 类创建自定义函数。 我这样做是因为我只想更新 1 个字段,但我想保留现有的更新功能用于其他事情。
正如人们所说,我已经尝试将它放在 api.php 中的资源之前,但仍然没有好处。
Route::put('/post/reorder/id', 'PostController@reorder');
Route::resource('/post', PostController::class);
这是控制器中的代码
public function reorder(Request $request, $id)
$post = Post::findOrfail($id);
...
另外,在运行 php artisan route:list 时会显示此错误。
Illuminate\Contracts\Container\BindingResolutionException
Target class [PostController] does not exist.
这是 VUE 中调用它的代码
export const API_URL = "http://localhost:8000/api/post";
axios
.put(API_URL + `/reorder/$item.id`,
// title: item.title,
// path: item.path,
// description: item.description,
order: newIndex,
)
当我运行它时,它给出了内部服务器错误 500
当我使用资源给我的默认功能时它可以工作,我只是不想输入我不想更改的字段。
那么我做错了什么?
【问题讨论】:
【参考方案1】:我认为您使用的是 laravel8 并且您的路线不正确
试试这个:
Route::put('/post/reorder/id', [PostController::class, 'reorder']);
【讨论】:
嗯,好吧,显然就是这样。现在工作正常。谢谢!以上是关于如何在 laravel 中为资源控制器添加自定义函数?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 5.5 中为选定的请求类设置自定义响应
在 Lumen/Laravel 控制器中添加自定义逻辑的最佳实践