매뉴얼 Q&A
RAG · 키워드 검색
서버 API 키 설정됨
파일 업로드는 어떻게해?
매뉴얼에 따르면 파일 업로드는 다음과 같은 순서로 진행됩니다. 1. **업로드 폼 만들기** – `app/Views`에 `upload_form.php` 같은 파일을 만들고, `form_open_multipart('upload/upload')` 으로 multipart 폼을 생성합니다. 2. **컨트롤러에서 처리** – `upload/upload` 라우트에 연결된 컨트롤러에서 `File` 클래스를 사용해 업로드된 파일을 가져옵니다. 3. **검증** – 설정한 기본 설정(파일 크기, 확장자 등)을 통해 업로드 허용 여부를 검증합니다. 4. **저장** – 검증이 끝나면 `move()` 같은 메서드를 사용해 지정한 디렉터리에 파일을 저장합니다. 5. **결과 표시** – 업로드가 완료되면 사용자에게 성공 메시지를 보여줍니다. 위 과정을 따라 `form_open_multipart`와 `File` 클래스를 활용하면 CodeIgniter 4에서 안전하고 간단하게 파일을 업로드할 수 있습니다.
데이타베이스 사용 방법 알려줘
DB 배치 업데이트는 어떻게 하지?
뷰 파서에 대해서 알려줘
**뷰 파서(View Parser)** - 파서는 템플릿 파일에서 `{변수}` 형태의 **의사 변수**를 찾아 실제 데이터로 치환합니다. - 배열 대신 객체가 전달되면 파서는 먼저 객체에 `asArray()` 메서드가 있는지 확인하고, 있으면 그 결과를 배열로 사용합니다. - `asArray()`가 없으면 객체를 배열로 캐스팅해 모든 공개(public) 속성을 사용 가능하게 합니다. - **중첩된 대체**가 필요할 때는 연관 배열(또는 객체)을 변수에 할당하면, `{blog_entries}` 같은 루프 블록 안에서 내부 키(`{title}`, `{body}` 등)를 바로 사용할 수 있습니다. - 예시: ```php $data = [ 'blog_title' => 'My Blog Title', 'blog_heading' => 'My Blog Heading', 'blog_entries' => [ ['title' => 'Title 1', 'body' => 'Body 1'], ], ]; return $parser->setData($data)->render('blog_template'); ``` `blog_template.php` ```html <h1>{blog_title} - {blog_heading}</h1> {blog_entries} <div> <h2>{title}</h2> <p>{body}</p> </div> {/blog_entries} ``` - `cascadeData` 옵션을 `true`로 설정하면 중첩 블록 안에서도 외부 변수에 접근할 수 있습니다. - 주석은 `{# 주석 내용 #}` 형태로 작성하면 파싱 시 무시됩니다.