Rocket example page number starts from one
This commit is contained in:
parent
ce35317daf
commit
bb225b12ee
@ -80,8 +80,11 @@ async fn list(
|
|||||||
flash: Option<FlashMessage<'_>>,
|
flash: Option<FlashMessage<'_>>,
|
||||||
) -> Template {
|
) -> Template {
|
||||||
// Set page number and items per page
|
// Set page number and items per page
|
||||||
let page = page.unwrap_or(0);
|
let page = page.unwrap_or(1);
|
||||||
let posts_per_page = posts_per_page.unwrap_or(DEFAULT_POSTS_PER_PAGE);
|
let posts_per_page = posts_per_page.unwrap_or(DEFAULT_POSTS_PER_PAGE);
|
||||||
|
if page == 0 {
|
||||||
|
panic!("Page number cannot be zero");
|
||||||
|
}
|
||||||
|
|
||||||
// Setup paginator
|
// Setup paginator
|
||||||
let paginator = Post::find()
|
let paginator = Post::find()
|
||||||
@ -90,7 +93,7 @@ async fn list(
|
|||||||
|
|
||||||
// Fetch paginated posts
|
// Fetch paginated posts
|
||||||
let posts = paginator
|
let posts = paginator
|
||||||
.fetch_page(page)
|
.fetch_page(page - 1)
|
||||||
.await
|
.await
|
||||||
.expect("could not retrieve posts");
|
.expect("could not retrieve posts");
|
||||||
|
|
||||||
|
@ -26,9 +26,9 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td>
|
<td>
|
||||||
{% if page == 0 %} Previous {% else %}
|
{% if page == 1 %} Previous {% else %}
|
||||||
<a href="/?page={{ page - 1 }}&posts_per_page={{ posts_per_page }}">Previous</a>
|
<a href="/?page={{ page - 1 }}&posts_per_page={{ posts_per_page }}">Previous</a>
|
||||||
{% endif %} | {% if page == num_pages - 1 %} Next {% else %}
|
{% endif %} | {% if page == num_pages %} Next {% else %}
|
||||||
<a href="/?page={{ page + 1 }}&posts_per_page={{ posts_per_page }}">Next</a>
|
<a href="/?page={{ page + 1 }}&posts_per_page={{ posts_per_page }}">Next</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
|
@ -24,7 +24,7 @@ impl<'db, S> Paginator<'db, S>
|
|||||||
where
|
where
|
||||||
S: SelectorTrait + 'db,
|
S: SelectorTrait + 'db,
|
||||||
{
|
{
|
||||||
/// Fetch a specific page
|
/// Fetch a specific page; page index starts from zero
|
||||||
pub async fn fetch_page(&self, page: usize) -> Result<Vec<S::Item>, DbErr> {
|
pub async fn fetch_page(&self, page: usize) -> Result<Vec<S::Item>, DbErr> {
|
||||||
let query = self
|
let query = self
|
||||||
.query
|
.query
|
||||||
|
Loading…
x
Reference in New Issue
Block a user