# 第3節 Laravel-表單列表及分頁實現 #
3.1 創建數據庫、student表
3.2 數據庫配置文件
3.3 創建模型
3.4 用戶列表頁
3.5 實現分頁功能
# 3.1 創建數據庫、student表 #
創建數據庫,打開CMD,執行下列SQL命令。
-- 庫名
CREATE DATABASE `example`;
-- 選庫
use example
-- 學生信息表
CREATE TABLE `student`(
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '學生姓名',
`age` INT(3) NOT NULL DEFAULT 0 COMMENT '年齡',
`sex` TINYINT(1) NOT NULL DEFAULT 2 COMMENT '0:女,1:男,2:未知'
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 測試數據
INSERT INTO `student` (name, age, sex) VALUES
('張三', 20, 1),
('李四', 18, 1),
('王五', 90, 1),
('王婆', 99, 0),
('李桂花', 66, 0),
('小麗', 16, 2);

# 3.2 數據庫配置文件 #
配置文件:`.env`
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=example
DB_USERNAME=root
DB_PASSWORD=root
在項目中,我們將會使用 `Eloquent ORM` 操作數據庫,這里我們使用 `查詢構造器` 測試數據庫連接情況。
在控制器中 `app\Http\Controllers\StudentController.php`
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use DB;
class StudentController extends Controller
{
public function index()
{
$students = DB::table('student')->get();
dd($students);
return view('student/index');
}
}
訪問首頁查看測試效果:

在 DB facade 上使用 table 方法, table 方法會針對指定的數據表返回一個查詢構造器實例,允許你在查詢時鏈式調用更多約束,并得到最終結果。在這個例子中,我們將會從一個數據表中來獲取所有的記錄。
# 3.3 創建模型 #
創建模型實例的最簡單方法是使用 make:model Artisan 命令:
php artisan make:model models/Student
生成的模型文件在:`app\models\Student.php`
<?php
namespace App\models;
use Illuminate\Database\Eloquent\Model;
class Student extends Model
{
//
}
在模型上定義一個 table 屬性,用來指定自定義的數據表名稱,否則默認是以模型的復數形式名稱作為數據表的名稱。
`\app\models\Student.php`
<?php
namespace App\models;
use Illuminate\Database\Eloquent\Model;
class Student extends Model
{
/**
* 與模型相關的數據表
*/
protected $table = "student";
/**
* 指定是否模型應該被戳記時間
*/
public $timestamps = false;
}
# 3.4 用戶列表頁 #
`app\Http\Controllers\StudentController.php`
class StudentController extends Controller
{
/**
* 用戶列表頁
*
* @param
* @return void
* @author webjust [604854119@qq.com]
*/
public function index()
{
// 使用模型獲取全部數據
$students = Student::get();
// 渲染 student/index 視圖,并傳遞查詢出來的全部數據
return view('student/index', ['students' => $students]);
}
}
在視圖中顯示全部的數據:
`\resources\views\student\index.blade.php`
@foreach($students as $student)
<tr>
<th scope="row">{{ $student->id }}</th>
<td>{{ $student->name }}</td>
<td>{{ $student->age }}</td>
<td>{{ $student->sex }}</td>
<td>2016-01-01</td>
<td>
<a href="">詳情</a>
<a href="">修改</a>
<a href="">刪除</a>
</td>
</tr>
@endforeach
顯示效果如下:

這里我們再修改表結構,增加2個字段吧!
執行SQL語句:
-- 修改student表結構
ALTER TABLE `student` ADD `created_time` INT(10) NULL DEFAULT 0 COMMENT
'用戶創建時間' AFTER `sex`;
ALTER TABLE `student` ADD `updated_time` INT(10) NULL DEFAULT 0 COMMENT
'最后修改時間' AFTER `created_time`;
-- 添加1條測試數據
INSERT INTO `student` (name, age, sex, created_time, updated_time) VALUES
('侯亮平', 35, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP());
修改視圖文件:
@foreach($students as $student)
<tr>
<th scope="row">{{ $student->id }}</th>
<td>{{ $student->name }}</td>
<td>{{ $student->age }}</td>
<td>{{ $student->sex }}</td>
<td>{{ date('Y-m-d', $student->created_time) }}</td>
<td>
<a href="">詳情</a>
<a href="">修改</a>
<a href="">刪除</a>
</td>
</tr>
@endforeach
# 3.5 實現分頁功能 #
在Laravel中添加分頁非常簡單,對 Eloquent 模型進行分頁,我們將對 Student 模型進行分頁并且設置其每頁有 5 條數據。
$students = Student::paginate(5);
將分頁結果顯示在視圖中:
~~~
<!-- 分頁 -->
<div class="pull-right">
{{ $students->links() }}
</div>
~~~
實現效果如圖:
