로그인 페이지와 메뉴를 볼 수있는 다른 모든 페이지의 두 가지 유형의보기가 있습니다. 로그인하지 않은 경우 메뉴가 표시되지 않습니다.정의되지 않은 변수 - var가 존재하는지 확인하는 방법
지금 내가 달성하고자하는 것은 머리글과 바닥 글이 자동으로로드되고보기가 호출 된 컨트롤러에 따라 내용이 동적 인 1 개의 템플릿을 사용하는 것입니다.
내 로그인 컨트롤러$data['content'] = 'login_view';
$data['menu'] = 'nomenu';
$this->load->view('templates/template', $data);
을이이 순간
이것은 당신은 내가 '우승 볼 수 있습니다처럼 내가 컨트롤러
$data['content'] = 'profile_view';
$this->load->view('templates/template', $data);
에 기록 내 에있는 것입니다 보내는 중 $data['menu']
및 내 보기 그렇게 같다 :
여기서 문제는 내 컨트롤러A PHP Error was encountered
Severity: Notice
Message: Undefined variable: menu
Filename: templates/template.php
Line Number: 7
에 기록됩니다
<?php $this->load->view('templates/header'); ?>
<?php
if($menu == 'nomenu'){
}
else{
$this->load->view($menu);
}
?>
<?php $this->load->view($content); ?>
<?php $this->load->view('templates/footer'); ?>
내 $ 메뉴가 난 단지 $ 메뉴를 보낼 것이기 때문에 존재하는지 확인하는 방법이 있나요 그것은 로그인보기, 그렇지 않으면 내가 실 거예요.
변수가 "정의되지 않음"인지 확인하지 마십시오. 단지 * 될 수 없는지 확인하십시오. - "정의 된"것인지 확인하는 데 필요한 적절한 기본/감시를 사용하십시오. 이렇게하면 결국 깨끗한 코드가 생성됩니다. 많은 프로그래밍 언어가 "정의되지 않은"변수 사용을 금지하고 그렇게하려고하는 코드에서 * 오류 *라고 생각하십시오. – user2246674
그게 가능한 해결책이지만, 모든 컨트롤러에서 항상'data [menu] '를 보내야 만합니다. 로그인 컨트롤러에서 온 경우에만 보내고 싶습니다. – mXX
그게 내가하는 일입니다. "정의되지 않은"변수를 사용하지 마십시오! 반면에, 나는 선택적인 키들로지도 콜렉션을 사용하는 것이 좋다고 본다. – user2246674