코드 점화 장치를 사용하고 있습니다.코드 점화 장치 동적 라우팅
example.com/idontexist
존재하지 않는 무엇인가 내가하고 싶은
,
페이지를 방문하면 그럼 내가 먼저 idontexist
데이터베이스에 있는지 데이터베이스를 확인합니다.
그 다음 내가
나는이 작업을 수행 할 수있는 방법example.com/action/idontexist.
로 사용자 경로를 원하는 경우?
코드 점화 장치를 사용하고 있습니다.코드 점화 장치 동적 라우팅
example.com/idontexist
존재하지 않는 무엇인가 내가하고 싶은
,
페이지를 방문하면 그럼 내가 먼저 idontexist
데이터베이스에 있는지 데이터베이스를 확인합니다.
그 다음 내가
나는이 작업을 수행 할 수있는 방법example.com/action/idontexist.
로 사용자 경로를 원하는 경우?
하나의 솔루션은 응용 프로그램/코어/MY_Router.php에 자신과 함께 CI_Router 클래스를 확장하고 당신의 클래스() 메소드 _set_routing을 복사하는 것입니다. routes.php 파일을 포함하고 $ this-> routes 속성으로 변경 한 후 어딘가에 변경 사항이 있으면 사용자 정의 경로를 추가 할 수 있습니다.
include(APPPATH.'config/routes'.EXT); ... $this->routes = (! isset($route) OR ! is_array($route)) ? array() : $route; unset($route); //Get your custom routes: $your_routes = $this->_get_custom_routes(); foreach($your_routes as $custom_route) { $this->routes[$custom_route['your_regex_match']] = $custom_route['controller'].'/'.$custom_route['action']; }
당연히이 기능이 필요하지는 않지만 몇 가지 아이디어가 있기를 바랍니다. 맞춤 경로를 추가 할 수 있고 데이터베이스에서 가져와야하므로 속도를 높이기 위해 캐싱을 고려해보십시오.
나는 매주 이같은 질문을 받는다.
은 application/config/routes.php
는 다음과 같이 뭔가를 추가 열고 :
$route['^(:any)'] = "my_controller/get_article/$1";
주의 사항 그것이 라우팅합니다 action
라는 컨트롤러에 이르기까지. 다른 컨트롤러가있는 경우에는 해당 컨트롤러를위한 경로를 추가해야합니다 (이 포트 앞에 배치하는 것이 바람직 함).
// 편집 : 당신은 고토 http://your-site.com/secrets-of-internet-marketing
을이 수 사용하고 그것은 my_controller
컨트롤러에서 get_article
함수를 호출하고, 첫 번째 인수로 "secrets-of-internet-marketing"
을 전달합니다. 어떤 수있는 다음과 같은 뭔가 과정 :
public function get_article($article_name) {
// something like this:
$article = $this->article_model->get_model_by_name($article_name);
$this->load->view('article', $article);
}
내가 무엇을 요구하고있는 것은 아닙니다. 정적 파일로 전원을 공급 받고 싶지 않습니다. 아이디어는 내가 데이터베이스에 기사를 추가 할 수 있고 그 다음에 경로가된다. 그러나 나는 기사/기사/무엇이든 갖고 싶지 않다. 내 요점은? – Hailwood
컨트롤러 내부에서 확인해야합니다. 이렇게하면 요청이 컨트롤러로 전달되고 입력에 대한 액세스가 제공됩니다. 그냥'$ 1' 인수를 취한 다음 데이터베이스에서 찾아보고 그 기사를 반환하십시오. – icchanobot
db에서 URL을로드하기 위해 get_instance()를 사용하여 CI를로드하려고하면 다음 오류가 발생합니다.'치명적인 오류 : 클래스 'CI_Controller'클래스가 system \ core \ CodeIgniter.php의 233 행에 없음 ' –