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

第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>

实现效果如图:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值