laravel数据库相关操作 模型 DB类的使用


数据表的创建与配置:


laravel与数据库交互的方式有两种:

  1. DB类操作数据库
  2. 模型操作数据库

1).数据表的创建与配置:
打开Navicat-----找到自己的数据库名字-----右击-----创建数据库-----填写自己要创建的数据库名/字符集/排列规则
在这里插入图片描述
创建完成后打开自己创建的数据库-------打开查询-------输入sql语句------最后运行------点击自己的创立的数据库表位置------此时member表就创立成功了(如没有出现创立的表,右击刷新下就好了)
//创建表的sql语句
create table member(

id int primary key auto_increment,

name varchar(32) not null,

age tinyint unsigned not null,

email varchar(32) not null

)engine myisam charset utf8mb4;

在这里插入图片描述
表:
在这里插入图片描述
2).在laravel中配置数据库:
在自己创建的laravel项目中的.env文件里配置;;
改成自己创建的数据库名,自己数据库密码,。。。。。
在这里插入图片描述
也可以在config目录下面的database.php文件里面配置。使用env函数,表示先从env文件里面获取,如果获取成功则使用,如果获取失败,则使用env函数的第二个参数。

注意:如果是php artisan serve方式启动的,修改了配置文件,则需要重新启动,才能读取修改后的配置文件;如果是wamp/lamp等环境则不需要重启
3).定义增删改查的路由
route/web.php
不要忘了单引号’’’’’

//增删改查
Route::get('add','TestController@add');
Route::get('del','TestController@del');
Route::get('mod','TestController@mod');
Route::get('select','TestController@select');

在这里插入图片描述


定义模型:


1).定义模型
在app目录下
2).命名规则,
一般没有要求,采用大驼峰.php
例如:User.php Member.php
3).创建模型
在laravel项目下,按住shift键+鼠标右击----打开命令行窗口------输入php artisan make:model 模型名字–回车----就创建成功了-----此时创建的Member就在app目录下
在这里插入图片描述
4).定义模型
第一:(必做)定义一个$table属性,值是不要前缀的表名(真实的表名),如果不指定则使用类名的复数形式作为表名。如果模型为Member模型在不指定table属性的情况下,其默认会去找members表。修饰词:protected

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

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

//定义模型关联数据表
   protected $table='member';
   //禁止模型自动更新数据表中的creat_at和update_at字段
   //默认为true、时间戳属性
   public $timestamps=false;

在这里插入图片描述


DB类和模型在控制器中的使用


DB类可以直接操作数据库中的所有表;

DB类使用:

1)在TestController中引用;

//引入DB,db可以直接操作所有的数据表
use DB;

在这里插入图片描述
其中DB是是引入的别名;别名的引入是在,config/app.php文件夹下
在这里插入图片描述
(不需要手动引入,默认引入过了)
2).使用DB类:
在TestController里面添加一个方法:
上边add方法一定定义过路由了;
**DB调用表,table(‘表名’)**表名是自己在数据库里创建的member表

//添加的方法
   public function add(){
       //DB调用表,table(‘表名’)
        dump(DB::table('member'));
   }

在网页中输入域名加add
在这里插入图片描述
现在DB类就是能使用了;

模型的使用:

1).引入模型在TestController里面印日

//模型引入
use app\Member;

在这里插入图片描述
模型在控制器中的使用方法有两种:

  1. 直接使用DB类一样的方法:以嗲用静态方法的形式为主,该方法下不需要实例化。Member::get();
  2. 实例化再去调用,比较普遍。例如:$model=new Member();$model->get();

以上两种方法的选择标准:

  1. 如果使用laravel框架自带的,任意选择;
  2. 如果使用的方法是用户在模型里自己定义的,使用第二种形式。
发布了46 篇原创文章 · 获赞 0 · 访问量 505

猜你喜欢

转载自blog.csdn.net/qq_45844648/article/details/105096257