만들면서 배우는 CodeIgniter Q&A

제목 책 56Page mdate 문제..
글쓴이 코드네임비버 작성시각 2013/07/25 22:55:04
댓글 : 8 추천 : 1 스크랩 : 0 조회수 : 15131   RSS
오늘 책을 받아서 열심히 실습중인데,

첫 단계인 todo list 만드는데부터 막히는군요.

아래는 코드입니다.

 
<?php
foreach($list as $lt)
{
?>
<tr>
<th scope="row">
<?php echo $lt->id; ?>
</th>
<td>
<a rel="external" href="/todo/index.php/main/view/<?php echo $lt->id; ?>"><?php echo $lt->content; ?></a>
</td>
<td>
<!--<time datetime="<?php echo mdate("%Y-%M-%j", human_to_unix($lt->created_on)); ?>"><?php echo $lt->created_on; ?></time>-->
</td>
<td>
<time datetime="<?php echo mdate("%Y-%M-%j", human_to_unix($lt->due_date)); ?>"><?php echo $lt->due_date; ?></time>
</td>
</tr>
<?php
}
?>

제가 작성한 코드입니다.

책에 나온걸 그대로 배꼈는데,

뭔가 오류가 있는지 정의되지 않은 함수 mdate 라는 오류가 뜨네요..

중간에 주석처리는 디버깅을 위해서 써 봤습니다.

주석처리를 안하니까 에러코드가 안떠서 주석처리를 했더니

<td>
  <!--<time datetime="<br />
  <b>Fatal error</b>: Call to undefined function mdate() in <b>H:\xampp\htdocs\todo\application\views\todo\list_v.php</b> on line <b>52</b><br />

아래와 같은 에러가 뜨네요..

무슨 문제일까요..?

제눈에는 도저히 안보이는군요...

그리구.. 코드 보기쉽게 어떻게 쓰죠..?

게시판이 처음이라..

그냥 올렸더니 너무 보기 어려운것같네요.. 죄송합니다..
 
 다음글 todo의 경로문제... (2)
 이전글 게시판 데이터 출력이 이상해서 질문드립니다. (4)

댓글

Artz / 2013/07/25 23:14:44 / 추천 0
에러 문구 그대로 mdate 함수를 찾지 못해서 발생하는 문제입니다.
검색해보니, 코드이그나이터의 Date Helper에 존재하는 함수네요.

$this->load->helper('date');

위처럼 해당 헬퍼를 로드하는 부분이 빠진 것 같습니다.


 
코드네임비버 / 2013/07/25 23:17:59 / 추천 0
 Artz 님께..

감사합니다. 헬퍼를 로드하는 코드는 그냥 그대로 뷰파일에 작성하면 되는것인가요..?

아니면 컨트롤러나 모델쪽에 작성해야 하는것인가요?

빠른 실습을 위해 메타 태그 몇개 배껴쓰는걸 건너뛰긴 했지만,

이쪽 소스코드에는 헬퍼를 로드하는 부분이 없는데..
변종원(웅파) / 2013/07/25 23:21:20 / 추천 0
코드는 위지윅에디터의 맨 우측 아이콘 클릭하고 넣으면 보기 좋게 나옵니다.


컨트롤러에 선언되어 있는게 아니라 config/autoload.php에 선언이 되어 있습니다.
소스를 다운받아 실행하시는 분은 에러가 안나는데 직접 입력하신 분은 에러가 납니다.
오탈자 등록하겠습니다.

감사합니다.

//config/autoload.php 의 내용

/*
| -------------------------------------------------------------------
|  Auto-load Helper Files
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['helper'] = array('url', 'file');
*/

$autoload['helper'] = array('date');

변종원(웅파) / 2013/07/25 23:22:42 / 추천 0
헬퍼 로드는 컨트롤러에서 합니다.

아니면 autoload.php 파일에서 할 수 있습니다.
코드네임비버 / 2013/07/25 23:25:25 / 추천 0
 다들 감사합니다. 말씀해주신대로 autoload.php에 해당 코드 수정하니 제대로 동작 하는군요 ㅎㅎ

전 코드 다운로드 보다는 직접입력해보는걸 선호해서 이방식으로 하는데,

마찬가지 이유로 bootstrap.css 가 동작하지 않는건가요??
변종원(웅파) / 2013/07/26 00:17:36 / 추천 0
직접 입력하셨다면 bootstrap.css가 없어서 그렇습니다.

한빛미디어 서버 소스에서 todo/include/css 디렉토리를 동일한 위치에 복사해 넣으면 됩니다.
socurites / 2013/07/26 11:26:58 / 추천 0
 오탈자 등록하려고 왔더니 이미 쓰레드가 열렸네요. 감사합니다.
우륭 / 2013/10/06 23:19:52 / 추천 0

./xampp\htdocs\todo\application\config\autoload.php

./xampp\htdocs\todo\application\controllers\main.php

helper를 모두 사용하고 있어서, 단순히 mdate만 찾아서 책57p 처럼 보려면
2번째 파일(컨트롤러 파일)을 위에서 설명하신데로 수정하시면 됩니다만...

즉, "목록 만들기 + 보기 만들기" 까지만 하실려면 2번째 파일을 수정하세요.

그런데 원래 todo 게시판의 목적인
"목록 만들기 + 보기 만들기 + 쓰기 만들기 + 삭제 만들기" 까지 완성하시려면
1번째 파일을 수정하세요.
이 방법이 더 근본적인 방법입니다.