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

时间:2016-07-27 09:43:10

标签: php laravel laravel-5 user-controls

我的Laravel应用程序有两个控制器UserControllerAdminController,当然管理员拥有的凭据多于用户,这就是我的问题:

我希望用户能够:

  1. 获取并查看帐户
  2. 获取并查看邮件
  3. 管理员能够:

    1. 获取并查看帐户
    2. 获取并查看邮件
    3. 管理帐户
    4. 管理邮件
    5. 显然,两者的获取和查看功能都有多余,所以我尝试来创建两个控制器。 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
               ***/
       }
      

      如何<{1}}中使用UserController提取和查看功能?

1 个答案:

答案 0 :(得分:0)

您可能希望将getaccountgetmail方法放在User模型类上。