CI 묻고 답하기

제목 basecontroller 에서 모델 선언시 다른 컨트롤러에서 상속이 안되네요
카테고리 CI 4 관련
글쓴이 엑스 작성시각 2021/12/30 22:34:18
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 6339   RSS

basecontroller 에서 아래와 같이 작성했습니다.


class BaseController extends Controller
{
 ......
  
    /**
     * Constructor.
     */
    public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
    {
        // Do Not Edit This Line
        parent::initController($request, $response, $logger);

        // Preload any models, libraries, etc, here.

        // E.g.: $this->session = \Config\Services::session();

        $this->stay_m = new Stay_m();
        $this->session = \Config\Services::session();
    }
}

 

그리고 일반 컨트롤러에서 사용하려 하니 undefined 에러가 발생하네요.

일반 컨트롤러에서는 아래와 같이 작성하였습니다.


    Class Auth extends BaseController
    {
        ......
        $usr_info = $this->stay_m->get_usr_info($usr_id);

 

초보의 오류겠지만, 오류의 이유를 모르겠네요. 도움 부탁드립니다.

 다음글 Routes에 제대로 동작하지 않습니다 (4)
 이전글 curl 통신에서 데이터값이 실려가지 않습니다. (2)

댓글

프레드윤 / 2021/12/31 00:48:33 / 추천 0

$this->stay_m 이 변수가 선언하셨나요? 네임스페이스까지 하셨어요?

 

엑스 / 2021/12/31 20:01:44 / 추천 0

이 부분을 말씀하시는 것 같은데요.

namespace App\Controllers;

use CodeIgniter\Controller;
use CodeIgniter\HTTP\CLIRequest;
use CodeIgniter\HTTP\IncomingRequest;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;

use App\Models\Stay_m;

본문엔 적지 않았지만 선언했었습니다.

그래도 에러가 나서 원인을 모르겠습니다.

프레드윤 / 2021/12/31 23:12:14 / 추천 1
protected $stay_m 선언후에 쓰셔야되여
엑스 / 2022/01/01 00:22:23 / 추천 0

도움 감사합니다.

php 에서 별다른 선언없이 쓰던 것에 너무 익숙해 진 모양이네요. 하아...