我正在尝试用Laravel实现分页,我的分页链接在网页上显示为原始html.我对Laravel很新,我不确定我哪里出错了.我正在使用Laravel 5.
UserController的@指数:
public function index()
{
$page = \Input::get('page', 1);
$data = $this->user->getByPage($page, 10);
$users = Pagination::makeLengthAware($data->items, $data->totalItems, 10 );
return view('admin.users.index', compact('users'));
}
Run Code Online (Sandbox Code Playgroud)
EloquentUser getByPage方法:
public function getByPage($page=1, $limit=10)
{
$result = new \StdClass;
$result->page = $page;
$result->limit = $limit;
$result->totalItems = 0;
$result->items = [];
$users = $this->user->skip($limit * ($page - 1))
->take($limit)
->get();
$result->totalItems = $this->user->count();
$result->items = $users->all();
return $result;
}
Run Code Online (Sandbox Code Playgroud)
分页服务:
<?php namespace App\Services;
use Illuminate\Pagination\Paginator;
use Illuminate\Pagination\LengthAwarePaginator;
abstract class Pagination
{
/**
* Create paginator
*
* @param object $data Object containing the paginated data
* @param int $total
* @param int $perPage
* @return string
*/
public static function makeLengthAware($data, $total, $perPage)
{
$paginator = new LengthAwarePaginator(
$data,
$total,
$perPage,
Paginator::resolveCurrentPage(),
['path' => Paginator::resolveCurrentPath()]);
return $paginator;
}
}
Run Code Online (Sandbox Code Playgroud)
admin.users.index视图:
@foreach($users as $user)
<tr>
<td>{{ $user->id }}</td>
<td>{{ $user->username }}</td>
<td>{{ $user->email }}</td>
<td>Role</td>
<td>{{ $user->created_at }}</td>
</tr>
@endforeach
{{ $users->render() }}
Run Code Online (Sandbox Code Playgroud)
数据按预期显示在表中,但是$users->render()在页面上显示原始html.
任何人都知道我在这里做错了什么?
在Laravel 5中,您必须使用{!! !!}原始HTML输出.否则它将被转义.
{!! $users->render() !!}
Run Code Online (Sandbox Code Playgroud)
请查看此答案,以便比较刀片回波标签和如何更改它们的说明.
| 归档时间: |
|
| 查看次数: |
3240 次 |
| 最近记录: |