Laravel-如何处理控制器扩展了另一个控制器


Laravel - how to deal with controller extends another controller

我的Laravel应用程序有两个控制器UserControllerAdminController,当然管理员的凭据比用户多,我的问题来了:

我希望用户能够:

  1. 获取和查看帐户
  2. 获取和查看邮件

管理员能够:

  1. 获取和查看帐户
  2. 获取和查看邮件
  3. 管理帐户
  4. 管理邮件

显然,获取和查看功能两者都是多余的,所以我尝试创建两个控制器。AdminController扩展UserController:

UserController:

?php
namespace App'Http'Controllers;
use Illuminate'Http'Request;
use Illuminate'Support'Facades'Auth;
use DB;
use App'Http'Requests;
use App'User;
use App'Account;
use App'Mail;

class UserController extends Controller
{
        /*******************
         * Helper functions
         * retrieving data
         ***/
        //retrieving data from database
        protected function getaccount($userId){
            //fetch data from database
        }
        protected function getmail($userId){
            //fetch mail from database
        }
        /*******************
         *other controller functions
         ***/
 }

AdminController:

?php
namespace App'Http'Controllers;
use Illuminate'Http'Request;
use Illuminate'Support'Facades'Auth;
use DB;
use App'Http'Requests;
use App'User;
use App'Account;
use App'Mail;

class AdminController extends Controller, UserController
{
        /*******************
         * Helper functions
         * retrieving data
         ***/
        //retrieving data from database
        protected function manageaccount($userId){
            //manage
        }
        protected function managemail($userId){
            //manage
        }
        /*******************
         *other controller functions
         ***/
 }

如何AdminController中使用UserController获取和查看功能?

您可能需要将getaccountgetmail方法放在User模型类上。