CI 묻고 답하기

제목 배포 후 display_error 함수가 에러가 발생합니다
카테고리 CI 4 관련
글쓴이 dg_dong 작성시각 2022/03/14 11:58:02
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 5867   RSS
AWS 서버로 배포했을때 회원가입 데이터를 검증하고 에러를 뿌려주는 함수 display_error가 함수가 없다고 에러가 발생합니다 use로 불러온 namespace는 아래에 기입했습니다


use 부분입니다
use Codeigniter\Controller;

use CodeIgniter\API\ResponseTrait;

use App\Libraries\Hash;

 

오류가 발생하는 메소드입니다

    public function save()
    {     
        $validation = $this->validate([
            'name' => [
                'rules'  => 'required',
                'errors' => [
                    'required' => '이름은 필수로 입력해야됩니다'
                ]
            ],
            'email' => [
                'rules'  => 'required|valid_email|is_unique[tbl_users.email]',
                'errors' => [
                    'required'    => '이메일은 필수로 입력해야됩니다',
                    'valid_email' => '이메일이 맞는지 다시 확인해주세요',
                    'is_unique'   => '이미 존재하는 이메일 입니다',
                ]
            ],
            'password' => [
                'rules'  => 'required|min_length[5]|max_length[12]',
                'errors' => [
                    'required'   => '비밀번호는 필수로 입력해야됩니다',
                    'min_length' => '비밀번호는 최소 5글자 입니다',
                    'max_length' => '비밀번호는 최대 12글자 입니다',
                ]
            ],
            'cpassword' => [
                'rules'  => 'required|min_length[5]|max_length[12]|matches[password]',
                'errors' => [
                    'required'   => '확인 비밀번호는 필수로 입력해야됩니다',
                    'min_length' => '확인 비밀번호는 최소 5글자 입니다',
                    'max_length' => '확인 비밀번호는 최대 12글자 입니다',
                    'matches'    => '확인 비밀번호는 비밀번호와 일치해야됩니다'
                ]
            ],
        ]);
        $error = [
            'name' => display_error($this->validator, 'name'),
            'email' => display_error($this->validator, 'email'),
            'password' => display_error($this->validator, 'password'),
            'cpassword' => display_error($this->validator, 'cpassword')
        ];
        if(!$validation){
            return $this->response->setJSON($error); 
        } else {
            // Register use into db
            $data = $this->request->getJSON(true);
            $name      = $data['name'];
            $email     = $data['email'];
            $password  = $data['password'];

            $values = [
                'name'     => $name,
                'email'    => $email,
                'password' => Hash::make($password),
            ];

            $usersModel = new \App\Models\UsersModel();
            $query = $usersModel->insert($values);
            if(!$query)
            {
                return redirect()->back();
            } else {
                // return redirect()->to('auth/register')->with('success','You are now registered successfully');
                $last_id = $usersModel->insertID();
                session()->set('loggedUser',$last_id);
                return $this->response->setJSON(true);
            }
        }
    }

 

오류 소스 입니다

{
    "title": "Error",
    "type": "Error",
    "code": 500,
    "message": "Call to undefined function App\\Controllers\\display_error()",
    "file": "/home/Book/book/app/Controllers/Auth.php",
    "line": 51,
    "trace": [
        {
            "file": "/home/Book/book/vendor/codeigniter4/framework/system/CodeIgniter.php",
            "line": 802,
            "function": "save",
            "class": "App\\Controllers\\Auth",
            "type": "->"
        },
        {
            "file": "/home/Book/book/vendor/codeigniter4/framework/system/CodeIgniter.php",
            "line": 399,
            "function": "runController",
            "class": "CodeIgniter\\CodeIgniter",
            "type": "->"
        },
        {
            "file": "/home/Book/book/vendor/codeigniter4/framework/system/CodeIgniter.php",
            "line": 317,
            "function": "handleRequest",
            "class": "CodeIgniter\\CodeIgniter",
            "type": "->"
        },
        {
            "file": "/home/Book/book/public/index.php",
            "line": 37,
            "function": "run",
            "class": "CodeIgniter\\CodeIgniter",
            "type": "->"
        }
    ]
}

 

 다음글 Ci3 cron질문합니다. (3)
 이전글 재 질문 합니다 컨트롤러-폴더 (3)

댓글

테러보이 / 2022/03/14 13:12:14 / 추천 1

display_error() 가 어느 패키지에서 나오는 함수인지요?

기본 함수는 아닌것 같은데

---------

helper('해당 함수가있는 헬퍼파일')

변종원(웅파) / 2022/03/15 08:36:06 / 추천 1

이런 방법도... git 배포라면 composer로 설치된 라이브러리인지 확인하시고 업데이트.

 

dg_dong / 2022/03/15 11:46:26 / 추천 0
답변해주셔서 감사합니다 로컬에서 헬퍼 함수 등록할때 대소문자가 상관이 없었습니다 하지만 AWS에 배포 후 대소문자가 달라서 문제가 되었었습니다 감사합니다 :)
변종원(웅파) / 2022/03/15 14:43:33 / 추천 0
그래서 대소문자 중요합니다. 처음부터 원칙을 지켜서 개발하면 리눅스던지 윈도우던지 문제 없이 소스가 돌아갑니다. ^^