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联表,建议都用模型。