2017-12-28 10 views
0

저는 Laravel을 처음 사용합니다. Codeigniter의 다른 컨트롤러에서 공통 컨트롤러를 확장했습니다. 다음은 CI 공통 컨트롤러입니다.Laravel 5.2에서 다른 컨트롤러로 공용 컨트롤러를 확장하는 방법은 무엇입니까?

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
class Common extends CI_Controller { 
     protected $_data = array(); 
     public function __construct() { 
     parent::__construct(); 

     $this->load->helper(array('url','form','html')); 
     $this->load->library(array('session','authentication','upload','image_lib','pagination')); 

     $this->_data['totalUser'] = 10; 
     $this->_data['newUser'] = 2; 
     $this->_data['totalChallenge'] = 1; 
     $this->_data['totalReport'] = 1; 
    } 
} 

이 내가 다른 CI 컨트롤러에서 확장하는 방법입니다 -

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
include_once('common.php'); 
class Dashboard extends Common { 

     public function __construct() { 
     parent::__construct(); 
     $this->load->model('login_model'); 
    } 

    public function index() 
    { 
     $data['globalData'] = $this->_data; 
     $entity = 'dashboard'; 
     $action = 'view'; 
     $data['action'] = $action; 
     $data['entity'] = $entity; 
    $this->authentication->is_loggedin($this->session->userdata('user_name')); 
     $this->load->view('admin/dashboard',$data); 
    } 
} 

이제보기 페이지에서, 난 그냥 <?php echo $globalData['totalUser'];?>

내가 왜이 일을하고 같은 값을 인쇄 할 수 있습니다 ?

오늘 모든 컨트롤러에 20 개의 데이터를 추가해야한다고 가정합니다. 그런 다음 공용 제어기에서만 변경해야합니다. $data['globalData'] = $this->_data;은 모든 컨트롤러에서 20 개의 데이터를 모두 사용할 수 있기 때문에 코더가 LOC 대신 20 개의 LOC를 쓰기 쉽습니다.

Laravel 5.2에서 위의 작업을 어떻게 수행 할 수 있습니까?

+0

개념없는 경우 추가하십시오 당신 ' 구현 된 Laravel 완전히 잘못되었습니다. 먼저 Laravel 기본을 배우는 것이 좋습니다. 이런 식으로 다른 파일을 요구하지 마십시오. –

+0

유엔 그 설정을 유지할 수 있습니다 .. 그 컨트롤러에 대한 필요가 없습니다 –

답변

0

Laravel에는 App \ Controller에 기본 컨트롤러가 있습니다. 생성 된 모든 컨트롤러 (Artisan)가 기본 프로젝트 컨트롤러를 확장하므로 CIController를 사용하는 것과 똑같이 사용할 수 있습니다.

0

쉽게 샘플에 따라 같은 디렉토리 예에 Laravel 컨트롤러 익스텐트 기본 컨트롤러 (/ 컨트롤러)

를 만들 수 있습니다

DashboardController.php 
class DashboardController extends \BaseController { 

public function index() 
{ 
    $data['globalData'] = $this->_data; 
    $entity = 'dashboard'; 
    ...... 


} 


BaseController.php (extends laravel Controller) 
<?php 

class BaseController extends Controller { 

    /** 
    * 
    * define your value 
    */ 
    protected $_data = "20"; 


} 

아무것도