2017-02-01 22 views
0

Итак, допустим, у меня есть контроллер с именами страниц.Лучший способ загрузки просмотров Codeigniter3

с этой функцией.

function __construct(){ 
parent::__construct(); 
$this->auth['result'] = $this->is_logged_in(); 
} 

Приведенный выше код, требует расширенной функции «MY_Controller», которая имеет функцию под названием is_logged_in() и просто выборки данных сеанса.

Мой первый вопрос был бы, я делаю эту проверку подлинности правильно? или я просто не использую его?

В любом случае, мой главный вопрос касается загрузки просмотров.

Скажем, у меня много просмотров, некоторые виды доступны только пользователю TYPE A, который имеет уровень доступа, отличный от уровня доступа пользователя TYPE B.

Скажем, что обе учетные записи создаются по-разному, как на некоторых интернет-сайтах, где есть пользователи и владельцы магазинов, которые зарегистрировались для рекламы своего магазина irl или, например, онлайн-путешествий. Одна учетная запись - пользователь (обычный/путешественник), а одна учетная запись - владелец гостиницы (владеет отелем irl). Таким образом, оба будут иметь перекрывающиеся представления и некоторые специальные представления для них.

Как мне это сделать при загрузке просмотров?

Say в моем контроллере я получил функцию,

public function view_home(){ 

} 

public function view_userprofile(){ 

} 

public function vieW_hotelprofile(){ 

} 

Вы мою идею сверху, у меня есть отдельные функции для загрузки различных взглядов. Но мой вопрос в том, как я могу сделать его одной большой функцией?

, как, например,

public function view($page ='home'){ 

} 

функция вид будет как терминал для различных учетных записей для доступа мнения.

Это было бы проще, если бы мне не нужно было проверять access_levels. Моя первая идея - сделать очень длинный оператор IF(){}ELSEIF(){}, например.

if($this->auth['result'] = 1){ 
load view here. 
} 

Это приемлемо? также, как бы я мог сделать это эффективно? и в отношении аутентификации эта часть меня действительно смущает, если я использую ее правильно или нет.

Также, если я когда-либо делаю очень длинный оператор if, какие значения я должен проверить? например, я знаю, что вам нужно проверить уровень доступа для определенных просмотров, но я также проверяю имя пользователя, входящее в систему, и сопоставляю его с базой данных, если это уровень доступа одинаковый?

ответ

0

Вы можете попробовать использовать переключатель случай

public function loadView() 
    { 
      switch($this->auth['result']){ 
      case 1: 
       $view= "home"; 
       break; 
      case 2: 
       $view= "userprofile"; 
       break; 
      case 3: 
       $view= "hotelprofile"; 
       break;   
      default: 
       $view= "Welcome"; 
       break; 

     }  
    $this->load->view($view); 
    } 
+0

Какая разница между этим и если заявление? Является ли переключатель лучше подходящим, когда есть много условий и, следовательно, многие соответствующие результаты? –

+0

Возможно, вы посмотрели [http://stackoverflow.com/questions/680656/what-is-the-difference-between-if-else-and-switch] –

 Смежные вопросы

  • Нет связанных вопросов^_^