질문 Q #22932
[라우팅]ci4라우팅 질문입니다.
헛발이 2020-12-05 11:25:58

질문이라기 보다는 이상하게 안되서 여쭙니다.

$routes->get('news/(:num)', 'NewsController::get_show/$1');

을 하고 싶습니다.

하지만 위의 라우팅을 하면 404 File not found 되버리네요...

아무리 해도 안되서 네임스페이스 문제인지 뭔가 디랙토리문제인지 뭔가 오타가 있는지

엄청 찾이 봤지만 특별이 문제는 없었는데요..

$routes->get('news/(:num)', 'NewsController::get_show/');

이렇게 하니 원하는 페이지로 이동하네요..

그런데 마지막에 $1를 넣으면 404가 되는데 그래서 URI를 원하는데로 할수가 없는데요..

혹시 뭐가 문제인지 $1가 왜 저만 안되는건지 아시는 고수님을 찾습니다.

ㅠㅠ

답변 7
#1 테러보이 2020-12-05 17:22:33
NewsController::get_show에서 인자를 받을수 있도록 처리되있는지요? 안되는 경우의 에러를 보면 좋을듯합니다 http://ci4doc.cikorea.net/incoming/routing.html 세그먼트 지정부분을 참조해보세요
#2 헛발이 2020-12-07 00:11:57

음... 물론

public function get_show($news_id=NULL)
{

}

이렇게 처리 하고 있습니다.

그런데 404페이지가 되어 페이지를 찾을수 없다고 나오는데..

다른 설정방법이 있는건가요?

 

#3 PureAni 2020-12-07 09:12:01
404면 하단에 어떤 네임스페이스를 참조하려고 하는지 나올거라 생각되는데, 그 네임스페이스랑 일치하나요?
#4 테러보이 2020-12-07 09:12:53

컨트롤러 경로가 맞는지 확인 해보세요.

저도 잘 사용하고 있는방법이라....

#5 헛발이 2020-12-07 11:21:37

다행히 찾았습니다.  

콘트롤러를 폴더 아래에 넣고 했는데 맞지가 않았나 보네요..

하지만 네임스페이스를 아무리 마춰봐도 콘트롤러/폴더/ 밑에 있는 콘트롤러는 네임스페이스에서 잘 안되네요...

라우팅 없이는 문제가 없는데 라우팅을 하니 자꾸 서로 맞지가 않아서 404가 되어 버리네요..

일단 급한데로 폴더를 사용하지 않고 바로 콘트롤러에 옮겨 문제는 없애버렸습니다.

 

많은 분들께 감사드립니다.

#6 테러보이 2020-12-07 11:43:14

네임스페이스를 잘못 지정하지 않으셨을까요?

#7 헛발이 2020-12-07 11:47:51

그래 보이긴 하는데 시간적이 여유가 별루 없네요.

일단 나중에 여유가 좀 있을때 찾아 보도록 하겠습니다.