Когда вы нажимаете domain/index.php/blog/2
, это означает, что вы вызываете индекс метода по умолчанию для контроллера блога и передаете 2 в качестве параметра.В этом сценарии он заменит ваш параметр по умолчанию $page = '1'
на 2.
Когда вы нажмете domain/index.php/blog
, тогда индексная функция будет вызвана без каких-либо параметров, и для $page
будет принято значение 1.
ОБНОВЛЕННЫЙ ОТВЕТ (Согласно комментарию)
Если ваш контроллер содержит метод с именем _remap (), он всегда будет вызываться независимо от того, что содержит ваш URI.Он отменяет нормальное поведение, при котором URI определяет, какой метод вызывается, что позволяет вам определять свои собственные правила маршрутизации методов.
Ссылка на документацию
Использовать нижекод это решит вашу проблему.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Blog extends CI_Controller {
function _remap($page){
if($page=='index'){
$this->index($page = 1);
}
$this->index($page);
}
public function index($page = 1)
{
var_dump($page); exit;
}
}