Laravel框架(数据库的操作)【重点】

本文介绍了Laravel框架中数据库的交互方式,包括DB类和模型的使用。详细讲解了数据表的创建与配置,模型定义的重点,以及如何在控制器中运用DB类和模型进行数据操作。特别强调了模型定义时的$table、$primaryKey和$timestamps属性的设定,并提供了控制器中调用模型的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

laravel框架提供两种数据库交互方式:
一是DB类操作数据库
二是模型操作数据库

1. 数据表的创建与配置

一、建立数据库的方式:
1.sql语句
2.图形界面 phpAdmin Navicat在这里插入图片描述
创建好数据表即可

二、数据库在laravel框架中的配置

在.env文件中
在这里插入图片描述
也可以在config目录下面的database.php文件里面配置,使用env函数,表示先从env文件里面获取,如果获取成功则使用,如果获取失败,则使用env函数的第二个参数。

注意:如果是 php artisan serve 方式启动的,修改了配置文件,则需要重新启动,才能读取修改配置后的文件;如果是wamp/lamp等环境则不需要重启。

三、定义增删改查需要的路由
增加:/add get
删除:/del get
修改:/mod get
查询:/select get
在这里插入图片描述

2. 模型的定义(重点)

(1)定义位置
定义模型的位置,默认是在app目录下面
(2)命名规则
本身laravel框架对模型的命名没有严格要求,一般采用表名(首字母大写).php
(3)创建模型
可以使用artisan命令;例如创建一个member模型**【模型也可分目录管理,但是没必要】**
[project]> php artisan make:model Member
在这里插入图片描述
基础结构代码
在这里插入图片描述
模型名要和数据库中的表名有关联

(4)定义模型注意事项(重点)
第一:(必做) 定义一个$table 属性,值是不要前缀的表名(真实的表名), 如果不指定则使用类名的复数形式作为表名。如果模型为Member模型在不指定table属性的情况下,其默认会去找members表。修饰词: protected

第二:(可选)定义$primtaryKey属性,值是主键名称,如果需要使AR模式的find方法,则可能需要指定主键( Model::find(n) ),在主键字段不是id的时候则需要指定主键。修饰词:protected

第三:(可选)(必做)定义$timestamps属性,值是false,如果不设置为false,默认为true。则默认会操作表中的created_at 和updated_at 字段,我们表中一般没有这两个字段,所以设置为false,表示不要操作这两个字段。修饰词: public。[并不是所有的增加、修改操作都会自动帮我们去更新这2个字段]

必有的代码:

protected $table='member';
    public $timestamps=false;

3.DB类&模型在控制器中的使用

3.1、DB类在控制器中的使用

DB类:是框架提供一个数据库操作类。可以直接操作所有的数据表
步骤:
1.引入DB类
2.使用DB类,DB::table(表名)->xxx() ->xxx() ->xxx();

在控制器中引入DB,因为其在app.php中已经被系统定义为了别名,所以可以简写

use DB;

再去方法中使用

 public function add(){
    	dump(DB::table('member'));
    }

在这里插入图片描述
3.2、模型控制器中调用

引入Menbei模型类:

use app\Menber;

模型的使用:模型在控制器中的使用方式有两种
一是直接像使用DB门面一样的操作方式:以调用静态方法为主的形式,该形式下模型不需要实例化,例如:Menber::get() 等价于DB::table(‘member’)->get();
二是实例化模型然后再去使用模型类(普通)
例如:$model = new Member();
$model->get();
两种形式的选择标准:
如果使用的方法都是laravel框架自带的,则任意选择;
如果使用的方法有用户自己在模型中定义的,使用第二行形式。
对于模型与DB的选择:只要不是做join联表,建议都用模型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值