Laravel5.1 框架模型创建与使用方法实例分析
本文实例讲述了Laravel5.1框架模型创建与使用方法。分享给大家供大家参考,具体如下:
Laravel的模型也是访问数据库的,它更加面向对象,一个模型对应着一张表我们可以使用模型对数据做一些增删改查的操作。
1创建模型
创建模型是可以使用Artisan控制台的:
phpartisanmake:modelArticle
一般我比较喜欢连带着migration一起生成:
phpartisanmake:modelArticle-m
↑执行了上面的Artisan命令后我们就可以在/app下找到我们刚刚创建的模型了,顺便也生成好了migration。
2模型常用属性
2.1自定义表名
一个model对应一个表,model对应的表名默认是model名字的复数即:Article(Model)对应Articles(Table),User(Model)对应Users(Table)。
当然如果你的Model不想用这种默认方式也可以自定义:
classArticleextendsModel { protected$table='K_Articles'; }
2.2自定义主键
Model的主键默认是id,你也可以自定义:
classArticleextendsModel { protected$primaryKey='article_id'; }
2.3时间戳
在咱的数据表之中有create_at和update_at两个时间戳是Laravel自动管理的,如果你不想要自动管理这两个列可以这样做:
classArticleextendsModel { public$timestamps=false; }
2.4白名单和黑名单
当我们用到批量创建和批量修改时必须声明黑名单或白名单,在白名单中的属性是可以填充的属性,在黑名单中的属性是不允许被填充的属性:
classArticleextendsModel { protected$fillable=['title','body']; }
注意:不知道怎么用没关系,3.2我们就会说批量创建。
3创建数据(模型)
创建模型有两种方法,第一种就是普通的创建,第二种是批量创建。
3.1普通创建模型
普通创建就是新建一个模型:
publicfunctiongetCreateArticle() { $article=newArticle(); $article->title='One'; $article->body='LearnLaravelModel'; $article->save(); }
3.2批量创建
批量赋值就是使用create方法来生成一个model并返回这个新插入的model,在你使用create前必须检查model中是否声明了黑名单或白名单:
classArticleextendsModel { protected$fillable=['title','body']; }
↑这是我们的白名单
publicfunctiongetCreateArticle() { $article=Article::create(['title'=>'Two','body'=>'TestCreateModel','comment_count'=>10]); }
↑这是批量创建模型,有个细节哈我们在fillable中没有添加comment_count但是create方法中的数组有comment_count的键值。。。结果呢comment_count并没有被填充,原因是:它不在白名单中或者它在黑名单中。
4更新
更新跟插入很像,也有两种方法普通的和批量的。
4.1普通更新
publicfunctiongetUpdateArticle() { $article=Article::find(1); $article->title='Article_One'; $article->save(); }
4.2批量更新
publicfunctiongetUpdateArticle() { $article=Article::find(3); $article->update(['title'=>'Three','body'=>'Third']); }
5查找
其实Model的查找跟之前我们学过的构建器很像。
5.1获取全部的模型
publicfunctiongetIndex() { $articles=Article::all(); foreach($articlesas$article){ echo$article->title.'
'; echo$article->body.'
'; } }
5.2获取单个模型
使用find通过主键查找:
publicfunctiongetIndex() { $article=Article::find(1); dd($article->body); }
我们也可以判断是否取到了Model:
publicfunctiongetIndex() { $article=Article::find(2); if(!isset($article)){ abort(404,'NotFound'); } dd($article); }
当未取到值是自动报错应对这种场景也可以使用findOrFail:
publicfunctiongetIndex() { $article=Article::findOrFail(2); dd($article); }
5.3通过约束获取模型
这就是和构建器相似的地方,你可以像约束构建器一样约束它这里就不多说了给了例子吧:
publicfunctiongetIndex() { $article=Article::where('id','>',2)->orderBy('comment_count','desc')->lists('title')->toArray(); dd($article); }
先写这么多,下一篇说下Model的删除功能。
更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。