Laravel小项目之第3节 Laravel-表单列表及分页实现

来源:互联网 发布:linux 建立多级目录 编辑:程序博客网 时间:2024/04/28 11:51

第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=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=exampleDB_USERNAME=rootDB_PASSWORD=root

在项目中,我们将会使用 Eloquent ORM 操作数据库,这里我们使用 查询构造器 测试数据库连接情况。

在控制器中 app\Http\Controllers\StudentController.php

<?phpnamespace 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

<?phpnamespace App\models;use Illuminate\Database\Eloquent\Model;class Student extends Model{    //}

在模型上定义一个 table 属性,用来指定自定义的数据表名称,否则默认是以模型的复数形式名称作为数据表的名称。

\app\models\Student.php

<?phpnamespace 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>

实现效果如图: