Laravel 5 LengthAwarePaginator 在页面上显示原始 HTML
Laravel 5 LengthAwarePaginator Displaying Raw HTML on page
我正在尝试使用 Laravel 实现分页,我的分页链接在网页上显示为原始 html。我是 Laravel 的新手,我不确定哪里出错了。我正在使用 Laravel 5.
UserController@index:
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'));
}
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;
}
分页服务:
<?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;
}
}
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() }}
数据按预期显示在 table 中,但是 $users->render()
在页面上显示原始 html。
有人知道我做错了什么吗?
在 Laravel 5 中,您必须使用 {!! !!}
作为原始 HTML 输出。否则会被转义
{!! $users->render() !!}
查看 this answer 比较 blade 回显标签以及如何更改它们的说明。
我正在尝试使用 Laravel 实现分页,我的分页链接在网页上显示为原始 html。我是 Laravel 的新手,我不确定哪里出错了。我正在使用 Laravel 5.
UserController@index:
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'));
}
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;
}
分页服务:
<?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;
}
}
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() }}
数据按预期显示在 table 中,但是 $users->render()
在页面上显示原始 html。
有人知道我做错了什么吗?
在 Laravel 5 中,您必须使用 {!! !!}
作为原始 HTML 输出。否则会被转义
{!! $users->render() !!}
查看 this answer 比较 blade 回显标签以及如何更改它们的说明。