CI 묻고 답하기

제목 ci4에서 view 에서 컨트롤러 선언된 값 가져 오는 방법은 없나요?
카테고리 CI 4 관련
글쓴이 데칼코마니 작성시각 2022/07/11 16:24:57
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 750   RSS

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 형태로 받아서 클라인언트에서 불러다 사용 하고 있습니다.

 다음글 프로파일러 질문이요 ==> 다시 봐주세요ㅜㅜ (2)
 이전글 ci4에서 인쇄버튼기능 (2)

댓글

테러보이 / 2022/07/11 17:11:49 / 추천 0

베이스 컨트롤러의

public testData

를 

public $testData;

로 바꾸세요.

그리고 view('page', ['testData'=>$testData]); 해주셔야합니다.

 

http://ci4doc.cikorea.net/general/common_functions.html?highlight=view#view

데칼코마니 / 2022/07/11 17:22:39 / 추천 0

테러보이님 // 답변 감사 합니다. 오타가 있었네요  $testData 가 맞습니다.

ci4 에서는 기본적으로 다 view('페이지명', $data);  이 방법이 아니면 

view에서 직접 컨트롤러에 있는 값을 불러다 사용 할 방법은 없는건가요?

ci3 에서는 사용이 되었었는데 ci4에서는 안되어서요...

테러보이 / 2022/07/12 09:08:26 / 추천 0

제가 알기로는 안되는것으로 알고 있습니다.

혹시 방법을 아시게 되면 알려주세요 ㅎㅎ

데칼코마니 / 2022/07/12 10:11:28 / 추천 0

테러보이 // 답변 감사 합니다. 저도 계속 하다 보니 안되어서 ^^