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 回显标签以及如何更改它们的说明。