php - Laravel 6 - 一个具有多种功能的控制器
问题描述
我multiple users
的系统中有,所以我想要一个具有不同dashboard
.
My Controller look like this:
-Dashboard
->AdminDashboardController
->UserDashboardController
在我的 AdminDashboardController我有 2 个功能
public function countAllUser()
{
$cards = User::count();
return response()->json(['cards' => $cards]);
}
public function totalSales()
{
return 'Hello';
}
And In My DashboardController Like this
public function index(Request $request)
{
$adminUser = auth()->user()->roles->pluck('name')->toArray();
if($adminUser[0] === 'administrator') {
return (new AdminDashboardController())->countAllUser();
}
}
是的,它的工作,但如果我尝试这样的事情
return (new AdminDashboardController())->countAllUser()->totalSales()
;
它不起作用,我认为这也没有意义..
有没有办法我可以做到这一点?谢谢...
解决方案
虽然从另一个控制器调用控制器方法不是一个好习惯,但您应该使用服务。
但如果你真的想这样做,你可以通过
\App::call('App\Http\Controllers\AdminDashboardController@countAllUser');
或者
(new AdminDashboardController())->countAllUser();
或者
app(\App\Http\Controllers\AdminDashboardController::class)->countAllUser();
你的代码
return (new AdminDashboardController())->countAllUser()->totalSales();
没有工作,因为
(new AdminDashboardController())->countAllUser()
返回一个\Illuminate\Http\JsonResponse
实例,你应该调用totalSales
一个控制器实例
推荐阅读
- uipath - 自动格式化/美化 UIPath 工作流程设计
- vuforia - 具有固定尺寸的 Vuforia 视频播放
- sql-server - 将 varchar 转换为小数
- machine-learning - 在 K-Means 聚类算法(sklearn)中,如何将欧几里得距离覆盖到某个距离
- android - 通知 setSound() 似乎并没有真正设置声音
- sql - 在 SQL Server 上生成下一个字母数字代码
- android - 如何在文本视图中显示直径符号?我使用了直径符号 (⌀)(Unicode 字符 U+2300),但它不起作用
- git - 当我在vim中填写git commit消息时如何在文件列表中显示不同的颜色
- python-3.x - 将索引转换为 pandas 列
- git - 用于分支的 Visual Studio Code Git 扩展