laravel-11-laravel 模型Eloquent ORM

https://www.cnblogs.com/lx0715/p/10060178.html

使用 模型 Model处理数据的 增删改查

Eloquent ORM  让数据库的操作变的超级简单而且还安全

首先创建一个Model

默认是没有Model文件夹的   创建的话  会生成在app根目录下  但是当Model过多之后  就会有点恐怖了

所以我们可以自己创建一个Model文件夹  

命令如下

php artisan make:model Models/Artisan

模型Model的命名规则

是和数据表相对立的

laravel的数据表命名是用下划线+复数的形式

Model文件命名是单数形式帕斯卡命名法 首字母大写 驼峰命名法

比如 articles 表  Model文件名为  Article.php

user_types表的Model文件名为 UserType.php

再新建一个controller控制器 调用Model模型

命令

php artisan make:controller ModelController

在controller方法中

use  导入Model

use App\Models\Article;

新建一个index方法

解释一下 上面的代码 

function括号中的类名和变量当参数传给方法 这个人概念是 依赖注入  可以理解为实例化对象$articleModel,这样理解就可以方便一点

也可以这样

$articleModel = new Article();
$data = $articleModel->get(); 

或者这样

$data = Article::get();

以上方法 获取到的数据都是一样的

dump()中的toarray()方法是把查询出来的数据转化为数组,laravel中查出来的数据大多都是 集合 collection

在添加路由

Route::prefix('model')->group(function(){
     Route::get('index', 'ModelController@index');
})

访问 域名+model/index

 

接下来说  插入数据    正常流程是  html表单提交到php文件   处理插入到数据库

模型中有一个create()方法就是用来新增数据的  当然你也可以直接insert into   这样的话 就没有框架的意义了

新建一个方法和路由 store

 

上面的store方法  是对象调用了一个insert()方法   这个方法是我封装在Model文件中的  当然也可以直接在控制器中执行(下边会有举例),但是不提倡

看一下 Model文件中的insert方法

解释   create()方法默认返回的是插入的数据内容  后边加 ->id 就是只返回id

访问  域名+model/store

会报错   因为要在模型中先定义允许 create方法插入的字段

如上图可以二选一的 一般插入字段过多 就用第二种

 

 

查看数据库

通过 模型插入的数据  会自动插入 添加时间和 修改时间    之前说过创建表结构时

 

接下来 修改数据 新建方法 添加路由   update 修改id为5的数据

访问  执行

 

最后 是删除  laravel自带有回收站删除  软删除 删除之后可以恢复,但是数据库表中需要deleted_at字段,,之前也说过  创建表迁移时,调用 SoftDeletes

完了 要开启软删除功能,

模型 默认没有开启

在模型中 use 导入 SoftDeletes;

 

完了 再在Model类中开启功能

 

 新建方法 添加路由

完全删除信息 方法

开启软删除后  实现回收站功能 恢复软删除的方法restore()

开启软删除后的查询   查询包含软删除的信息 用 withTrashed()方法

只查被软删除的信息 onlyTrashed()方法

以上就是   Model模型的Eloquent ORM 

    A+
发布日期:2021年07月24日  所属分类:未分类

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: