gpt4 book ai didi

Laravel5.1 框架模型创建与使用方法实例分析

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Laravel5.1 框架模型创建与使用方法实例分析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了Laravel5.1 框架模型创建与使用方法。分享给大家供大家参考,具体如下:

Laravel的模型也是访问数据库的,它更加面向对象,一个模型对应着一张表 我们可以使用模型对数据做一些增删改查的操作.

1 创建模型

创建模型是可以使用Artisan控制台的:

?
1
php artisan make:model Article

一般我比较喜欢连带着migration一起生成:

?
1
php artisan make:model Article -m

↑ 执行了上面的Artisan命令后 我们就可以在 /app 下找到我们刚刚创建的模型了,顺便也生成好了migration.

2 模型常用属性

2.1 自定义表名

一个model对应一个表,model对应的表名默认是model名字的复数 即:Article(Model)对应Articles(Table),User(Model)对应Users(Table).

当然 如果你的Model不想用这种默认方式 也可以自定义:

?
1
2
3
4
class Article extends Model
{
   protected $table = 'K_Articles' ;
}

2.2 自定义主键

Model的主键默认是id,你也可以自定义:

?
1
2
3
4
class Article extends Model
{
   protected $primaryKey = 'article_id' ;
}

2.3 时间戳

在咱的数据表之中 有create_at 和 update_at 两个时间戳 是Laravel自动管理的,如果你不想要自动管理这两个列 可以这样做:

?
1
2
3
4
class Article extends Model
{
   public $timestamps = false;
}

2.4 白名单和黑名单

当我们用到批量创建和批量修改时 必须声明黑名单或白名单,在白名单中的属性是可以填充的属性,在黑名单中的属性是不允许被填充的属性:

?
1
2
3
4
class Article extends Model
{
   protected $fillable = [ 'title' , 'body' ];
}

注意:不知道怎么用没关系,3.2我们就会说批量创建.

3 创建数据(模型)

创建模型有两种方法,第一种就是普通的创建,第二种是批量创建.

3.1 普通创建模型

普通创建就是新建一个模型:

?
1
2
3
4
5
6
7
public function getCreateArticle()
{
   $article = new Article();
   $article ->title = 'One' ;
   $article ->body = 'Learn Laravel Model' ;
   $article ->save();
}

3.2 批量创建

批量赋值就是使用create方法来生成一个model并返回这个新插入的model,在你使用create前必须检查model中是否声明了黑名单或白名单:

?
1
2
3
4
class Article extends Model
{
   protected $fillable = [ 'title' , 'body' ];
}

↑ 这是我们的白名单 。

?
1
2
3
4
public function getCreateArticle()
{
   $article = Article::create([ 'title' => 'Two' , 'body' => 'Test Create Model' , 'comment_count' =>10]);
}

↑ 这是批量创建模型,有个细节哈 我们在fillable中没有添加comment_count 但是create方法中的数组有comment_count的键值。。。结果呢 comment_count并没有被填充,原因是:它不在白名单中 或者 它在黑名单中.

4 更新

更新跟插入很像,也有两种方法 普通的 和 批量的.

4.1 普通更新

?
1
2
3
4
5
6
public function getUpdateArticle()
{
   $article = Article::find(1);
   $article ->title = 'Article_One' ;
   $article ->save();
}

4.2 批量更新

?
1
2
3
4
5
public function getUpdateArticle()
{
   $article = Article::find(3);
   $article ->update([ 'title' => 'Three' , 'body' => 'Third' ]);
}

5 查找

其实Model的查找跟之前我们学过的构建器很像.

5.1 获取全部的模型

?
1
2
3
4
5
6
7
8
public function getIndex()
{
   $articles = Article::all();
   foreach ( $articles as $article ) {
     echo $article ->title . '<br />' ;
     echo $article ->body . '<br />' ;
   }
}

5.2 获取单个模型

使用find 通过主键查找:

?
1
2
3
4
5
public function getIndex()
{
   $article = Article::find(1);
   dd( $article ->body);
}

我们也可以判断是否取到了Model:

?
1
2
3
4
5
6
7
8
public function getIndex()
{
   $article = Article::find(2);
   if (!isset( $article )){
     abort(404, 'Not Found' );
   }
   dd( $article );
}

当未取到值是自动报错 应对这种场景 也可以使用findOrFail:

?
1
2
3
4
5
public function getIndex()
{
   $article = Article::findOrFail(2);
   dd( $article );
}

5.3 通过约束获取模型

这就是和构建器相似的地方,你可以像约束构建器一样约束它 这里就不多说了 给了例子吧:

?
1
2
3
4
5
public function getIndex()
{
   $article = Article::where( 'id' , '>' ,2)->orderBy( 'comment_count' , 'desc' )->lists( 'title' )->toArray();
   dd( $article );
}

先写这么多,下一篇说下Model的删除功能.

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助.

原文链接:https://www.cnblogs.com/sun-kang/p/7508121.html 。

最后此篇关于Laravel5.1 框架模型创建与使用方法实例分析的文章就讲到这里了,如果你想了解更多关于Laravel5.1 框架模型创建与使用方法实例分析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com