ci3 로 만든 프로그램을 ci4 로 적용 해 볼려고 하는데 에러가 나네요
view('페이지명' ,$data) 방식으로 필요한 값을 넘겨서 사용 하는게 아니라
아래와 같이 사용 할 수 있는 방법은 없는건가요?
1. 베이스 컨트롤러
class BaseController extends Controller {
public $testData;
public function testdata1234() {
$this->testData = '12345';
}
}
2. 컨트롤러 입니다.
<?php
class Common extends BaseController {
public function pageDetail() {
parent::testdata1234(); //베이스컨트롤러에 메소스 호출
echo $this->testData; // 정상적으로 12345 값이 나타 남
echo view('view페이지명');
// view('페이지명' ,$data) 이 방식이 아닌 다른 방식은 없는지
}
}
3. View 페이지에서
<php echo $this->testData; ?> 오류가 발생 합니다.
Undefined property: CodeIgniter\View\View::$testData
이런식으로 오류가 나타 납니다.
ci3 에서는 해당 값을 가져 와서 사용 했는데 ci4 에서는 오류가 발생 합니다
위와 같은 방식으로 데이터를 view에서 가져 올 수 있는 방법이 없나요??
이렇게 사용 할려는 이유가 페이지 로딩시 각 페이지에 맞는 권한이 있어서 권한을
view에서 받아서 json 형태로 받아서 클라인언트에서 불러다 사용 하고 있습니다.
테러보이님 // 답변 감사 합니다. 오타가 있었네요 $testData 가 맞습니다.
ci4 에서는 기본적으로 다 view('페이지명', $data); 이 방법이 아니면
view에서 직접 컨트롤러에 있는 값을 불러다 사용 할 방법은 없는건가요?
ci3 에서는 사용이 되었었는데 ci4에서는 안되어서요...
제가 알기로는 안되는것으로 알고 있습니다.
혹시 방법을 아시게 되면 알려주세요 ㅎㅎ
테러보이 // 답변 감사 합니다. 저도 계속 하다 보니 안되어서 ^^
베이스 컨트롤러의
public testData
를
public $testData;
로 바꾸세요.
그리고 view('page', ['testData'=>$testData]); 해주셔야합니다.
http://ci4doc.cikorea.net/general/common_functions.html?highlight=view#view