제목 | CI4 Routes 관련 문 | ||
---|---|---|---|
카테고리 | CI 4 관련 | ||
글쓴이 | 코드이그버그잡이 | 작성시각 | 2024/07/17 16:56:27 |
|
|||
CI 초보자입니다. 라우터에 대한 공부중 다른쪽 튜터리얼 보고 따라하다가 오류가 생겨 문의드립니다.
Routes.php 페이지 $routes->get('/', 'Home::index'); $routes->get('(:segment)', 'Pages::view/$1');
app/controllers/Pages.php 페이지 public function view($page = 'home') { $data['title'] = ucfirst($page); return view('templates/header', $data) . view('pages/' . $page) . view('templates/footer'); }
View/pages/about.php ~~~~
형태로 되어 있다고 치면 접근하는 url이 localhost:8080/pages/about 형태로 접근이 될수 있나요? 현재 접근 시도하면 404 에러가 나오는데 원인을 모르겠습니다. 무엇을 수정해봐야 할가요?
단순히 생각해보면 Routes.php 에서 $routes->get('pages/(:segment)', 'Pages::view/$1'); 이렇게 작성되어야 localhost:8080/pages/about 로 접근 가능할것 같고 위처럼 수정하니 접근도 가능합니다 그러면 위에 방식은 어떨때 사용하는거죠?
|
|||
다음글 | $this->include() 에 대한 질문입니다... (1) | ||
이전글 | CI 3.0.5 버전에서의 세션 오류 (2) | ||
cilove
/
2024/07/17 17:38:57 /
추천
0
|
코드이그버그잡이
/
2024/07/18 08:25:53 /
추천
0
public bool $autoRoute = true; 이렇게 진행했는데도 /pages/about로는 접근이 되지 않고 404 가 나오네요 다른것도 있을까요?
|
코드이그버그잡이
/
2024/07/18 08:29:09 /
추천
0
찾아보니 app/Config/Routing.php에도 public bool $autoRoute = false; 있고 system/Config/Routing.php에도 public bool $autoRoute = false; 이 있는데 2개는 뭐가 다른걸가요? 물론 2개다 true로 해보았지만 안됩니다. |
cilove
/
2024/07/18 10:42:51 /
추천
0
컨트롤러 예시에 어바웃 지정이 없는데 지정하시면 나올듯 합니다.
(무조건 뷰 메소드 타려면 라우터에서 잡아주는게 맞습니다) 시스템 폴더는 만지는게 아닙니다! |
PureAni
/
2024/07/28 14:23:30 /
추천
0
:segment 는 / 가 나오지 전까지만 확인합니다. 그렇기에 $routes->get('(:segment)', 'Pages::view/$1'); 코드는 samples.kr/pages 인 경우에만 해당합니다. /pages/about 이 되려면, $routes->get('(:segment)/:segment', 'Pages::view/$1'); 로 하시면 적용이 될겁니다. 예시에서 세그멘트가 2개인경우만 있어서, 2개인 경우에는 위와 같이 하면 동작할거라 생각합니다. 만약에 세그멘트가 여러개가 나온다면, /:any 로 하시면 아마 될겁니다. |
ci4 버전이 올라가면서 컨트롤러 자동 라우팅 기능이 기본 꺼짐(Routes.php 에 설정 안하면 라우팅 안해도록)으로 설정 되었습니다.
app/Config/Routing.php 파일의
public bool $autoRoute = false;
를
public bool $autoRoute = true;
로 바꿔보세요