php利用框架如何做分页,使用Laravel框架怎么实现一个分页功能

使用Laravel框架怎么实现一个分页功能

发布时间:2021-01-30 16:40:07

来源:亿速云

阅读:52

作者:Leah

本篇文章给大家分享的是有关使用Laravel框架怎么实现一个分页功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

Laravel使用的过程中,有些功能把前端页面的表达“写死了”,比如分页的翻页按钮!

当然你会说Laravel的Bootstrap样式也很好看啊,但是实际项目中,翻页按钮常常需要满足的客户的需要,特别在开发一款支持手机适配的Web APP,更是需要使用自定义的样式。

所以,学习一样东西不能一知半解,而是究其原理。

先来看看Laravel是怎么分页的,生成分页按钮的代码究竟写在了哪里?

Laravel目录\vendor\laravel\framework\src\Illuminate\Pagination下

先理一下类的继承关系

PresenterContract(父类)

┗BootstrapThreePresenter(子类)

┗BootstrapFourPresenter(子类)

从作者对类的命名上看,必有区别,我们从代码上研究

BootstrapThreePresenter.php和BootstrapFourPresenter.php主要区别在下列函数

BootstrapThreePresenter.php代码:/**

* Get HTML wrapper for an available page link.

*

* @param string $url

* @param int $page

* @param string|null $rel

* @return string

*/

protected function getAvailablePageWrapper($url, $page, $rel = null)

{

$rel = is_null($rel) ? '' : ' rel="'.$rel.'"';

return '

'.$page.'';

}

/**

* Get HTML wrapper for disabled text.

*

* @param string $text

* @return string

*/

protected function getDisabledTextWrapper($text)

{

return '

'.$text.'';

}

/**

* Get HTML wrapper for active text.

*

* @param string $text

* @return string

*/

protected function getActivePageWrapper($text)

{

return '

'.$text.'';

}

BootstrapFourPresenter.php代码:/**

* Get HTML wrapper for an available page link.

*

* @param string $url

* @param int $page

* @param string|null $rel

* @return string

*/

protected function getAvailablePageWrapper($url, $page, $rel = null)

{

$rel = is_null($rel) ? '' : ' rel="'.$rel.'"';

return '

'.$page.'';

}

/**

* Get HTML wrapper for disabled text.

*

* @param string $text

* @return string

*/

protected function getDisabledTextWrapper($text)

{

return '

'.$text.'';

}

/**

* Get HTML wrapper for active text.

*

* @param string $text

* @return string

*/

protected function getActivePageWrapper($text)

{

return '

'.$text.'';

}

我们发现最大的区别在ThreePresenter几乎是“裸”HTML标签,而FourPresenter生成的是带class的HTML标签。

无论是ThreePresenter还是FourPresenter,他们都有一个相同实现的render()函数/**

* Convert the URL window into Bootstrap HTML.

*

* @return \Illuminate\Support\HtmlString

*/

public function render()

{

if ($this->hasPages()) {

return new HtmlString(sprintf(

'

  • %s %s %s
',

$this->getPreviousButton(),

$this->getLinks(),

$this->getNextButton()

));

}

return '';

}

细心的读者已经发觉,还有两个继承类,分别是SimpleThreePresenter和SimpleFourPresenter,既然是Simple(简单),区别就在他们的render()函数/**

* Convert the URL window into Bootstrap HTML.

*

* @return \Illuminate\Support\HtmlString

*/

public function render()

{

if ($this->hasPages()) {

return new HtmlString(sprintf(

'

  • %s %s
',

$this->getPreviousButton(),

$this->getNextButton()

));

}

return '';

}

以上就是使用Laravel框架怎么实现一个分页功能,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值