кодесурса
«Laravel

Учебник Laravel (5.7) Пагинация

script1adsense2code
script1adsense3code

Шаг 1: Установите Laravel 5.7

Введите следующую команду.

композитор создание-проект Laravel / Laravel Lapagination --prefer-dist

Теперь настройте базу данных в файле .env.

Хорошо, затем перейдите к терминалу и нажмите следующую команду. php ремесленник мигрировать

Это создаст две таблицы в базе данных. Теперь мы используем фейкерную библиотеку для заполнения данных в базе данных.

Шаг 2: Генерация поддельных данных в базе данных.

Если вам интересно, как его установить, хорошая новость - он уже создан для вас в Laravel! Взгляните на composer.json по умолчанию в Laravel. "Требует-DEV":

"filp/whoops": "~2.0",
        "nunomaduro/collision": "~1.1",
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "~1.0",
        "phpunit/phpunit": "~7.0",
        "symfony/thanks": "^1.0"
},

Теперь нам просто нужно написать 6-7 строк кода для генерации ложных пользовательских данных. Перейдите в базу данных >> seed >> DatabaseSeeder и добавьте в нее следующие строки кода.

// DatabaseSeeder.php
/**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $faker = Faker::create();
    	foreach (range(1,1000) as $index) {
            DB::table('users')->insert([
                'name' => $faker->name,
                'email' => $faker->email,
                'password' => bcrypt('secret'),
            ]);
        }
    }

Сначала мы создали объект-фейкер, а затем перебираем различные столбцы таблицы пользователей и присваиваем по одному свойству за раз. Каждый цикл времени повторялся; новые случайные данные генерируются и прикрепляются к конкретным столбцам. Таким образом, мы можем создавать разные поддельные данные для каждого пользователя. Теперь введите следующую команду, чтобы создать поддельные данные. php artisan db: seed

Теперь вы можете видеть в базе данных и в таблице пользователей множество добавленных строк. Команда db: seed запускает этот файл с именем DatabaseSeeder.php.

Шаг 3: Вывести данные на внешний интерфейс.

Теперь перейдите к файлу HomeController.php и создайте одну функцию с именем getUsers ().

// HomeController.php
use App\User;
public function getUsers()
{
    $users = User::all();
    return view('index', compact('users'));
}

Определите маршрут внутри файла web.php.

// web.php
Route::get('/users', '[email protected]')->name('users');

Наконец, создайте один файл внутри ресурсов >> в папке views с именем index.blade.php.

<<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8" />
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <title>Users Data</title>
   <meta name="viewport" content="width=device-width, initial-scale=1">
   <link href="{{ asset('css/app.css') }}" rel="stylesheet" />
</head>
<body>
   <div class="container">
      <table class="table table-striped">
         <thead>
         <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Email</th>
         </tr>
         </thead>
         <tbody>
            @foreach($users as $user)
            <tr>
               <td>{{ $user->id }}</td>
               <td>{{ $user->name }}</td>
               <td>{{ $user->email }}</td>
            </tr>
            @endforeach
         </tbody>
      </table>
   </div>
</body>
</html>

Прямо сейчас он отображает все строки, и это то, что мы хотим. Мы хотим разбить данные на страницы. Итак, давайте сделаем это.

Шаг 4: Разбиение красноречивых результатов

Нам нужно использовать функцию Paginate, предоставляемую моделью Eloquent. Поэтому замените метод all () на paginate () и передайте количество строк в качестве параметра.

// HomeController.php
$users = User::paginate(15);

Теперь нам нужно отобразить веб-компонент нумерации страниц во внешнем интерфейсе. Как мы говорили ранее, объект разбиения на страницы Laravel хорошо работает с Bootstrap CSS Framework. Итак, нам просто нужно добавить следующий код в компонент таблицы внутри файла index.blade.php.

{{ $users->links() }}</code></pre>
<p>So, our whole index.blade.php file looks like this.</p>
<pre class="line-numbers">
<code class="language-php"><<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8" />
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <title>Users Data</title>
   <meta name="viewport" content="width=device-width, initial-scale=1">
   <link href="{{ asset('css/app.css') }}" rel="stylesheet" />
</head>
<body>
   <div class="container">
      <table class="table table-striped">
         <thead>
         <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Email</th>
         </tr>
         </thead>
         <tbody>
            @foreach($users as $user)
            <tr>
               <td>{{ $user->id }}</td>
               <td>{{ $user->name }}</td>
               <td>{{ $user->email }}</td>
            </tr>
            @endforeach
         </tbody>
      </table>
      {{ $users->links() }}
   </div>
</body>
</html>

Преобразование результатов пагинации в JSON

Классы результатов Paginator в Laravel реализуют контракт IlluminateContractsSupportJsonableInterface и предоставляют метод toJson, поэтому преобразование результатов разбивки на страницы в JSON легко. Поэтому напишите следующий код в файле web.php.

Route::get('users', function () {
    return App\User::paginate(4);
});

Предыдущий: Учебник Laravel (5.7) Миграция
Далее: Учебник Laravel (5.7) Redis

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code