Tôi hơi bối rối.
Khi tôi nhìn vào liên kết được tạo bởi phân trang ở giao diện người dùng, tôi thấy một tham số truy vấn có tên là start được bao gồm trong các liên kết số trang riêng lẻ và liên kết Bắt đầu và Kết thúc.
Tuy nhiên, phương thức populateState
trong JModelList
lớp cơ sở tìm kiếm limitstart
nếu $this->context
có a non null value
.
Do hàm tạo cơ sở cho JModelList
các tập hợp $this->context
bằng với <component_name>.<model_name>
nó, nên trong trường hợp mặc định $this->context
sẽ không có giá trị , do đó, popatedState thường sẽ gán giá trị từ $_GET['limitstart']
việc sử dụng getUserStateFromRequest()
như mã snipped hiển thị:
$value = $app->getUserStateFromRequest($this->context . '.limitstart', 'limitstart', 0);
$limitstart = ($limit != 0 ? (floor($value / $limit) * $limit) : 0);
$this->setState('list.start', $limitstart);
Tôi sẽ thực sự biết ơn nếu ai đó có thể giải thích lý do tại sao mọi thứ được thực hiện theo cách này và tôi phải làm gì để có được popatedState và phân trang để đồng ý về biến giữ hàng mà trang sẽ bắt đầu.
TIA.
$pagination = $this->get('Pagination');
trong tệp xem thì các vars trạng thái được yêu cầu trong phương thức popatedState của mô hình rất dễ hiểu theo cách này -$limit= $app->getUserStateFromRequest('global.list.limit', 'limit', $app->getCfg('list_limit'), 'uint'); $this->setState('list.limit', $limit); $limitstart = JRequest::getUInt('limitstart', 0); $this->setState('list.start', $limitstart);