Laravel模型的原理是什么,如何创建使用
Admin 2022-05-28 群英技术资讯 838 次浏览
在实际应用中,我们有时候会遇到“Laravel模型的原理是什么,如何创建使用”这样的问题,我们该怎样来处理呢?下文给大家介绍了解决方法,希望这篇“Laravel模型的原理是什么,如何创建使用”文章能帮助大家解决问题。本文实例讲述了Laravel5.1 框架模型创建与使用方法。分享给大家供大家参考,具体如下:
Laravel的模型也是访问数据库的,它更加面向对象,一个模型对应着一张表 我们可以使用模型对数据做一些增删改查的操作。
创建模型是可以使用Artisan控制台的:
php artisan make:model Article
一般我比较喜欢连带着migration一起生成:
php artisan make:model Article -m
↑ 执行了上面的Artisan命令后 我们就可以在 /app 下找到我们刚刚创建的模型了,顺便也生成好了migration。
一个model对应一个表,model对应的表名默认是model名字的复数 即:Article(Model)对应Articles(Table),User(Model)对应Users(Table)。
当然 如果你的Model不想用这种默认方式 也可以自定义:
class Article extends Model
{
protected $table = 'K_Articles';
}
Model的主键默认是id,你也可以自定义:
class Article extends Model
{
protected $primaryKey = 'article_id';
}
在咱的数据表之中 有create_at 和 update_at 两个时间戳 是Laravel自动管理的,如果你不想要自动管理这两个列 可以这样做:
class Article extends Model
{
public $timestamps = false;
}
当我们用到批量创建和批量修改时 必须声明黑名单或白名单,在白名单中的属性是可以填充的属性,在黑名单中的属性是不允许被填充的属性:
class Article extends Model
{
protected $fillable = ['title', 'body'];
}
注意:不知道怎么用没关系,3.2我们就会说批量创建。
创建模型有两种方法,第一种就是普通的创建,第二种是批量创建。
普通创建就是新建一个模型:
public function getCreateArticle()
{
$article = new Article();
$article->title = 'One';
$article->body = 'Learn Laravel Model';
$article->save();
}
批量赋值就是使用create方法来生成一个model并返回这个新插入的model,在你使用create前必须检查model中是否声明了黑名单或白名单:
class Article extends Model
{
protected $fillable = ['title', 'body'];
}
↑ 这是我们的白名单
public function getCreateArticle()
{
$article = Article::create(['title'=>'Two', 'body'=>'Test Create Model', 'comment_count'=>10]);
}
↑ 这是批量创建模型,有个细节哈 我们在fillable中没有添加comment_count 但是create方法中的数组有comment_count的键值。。。结果呢 comment_count并没有被填充,原因是:它不在白名单中 或者 它在黑名单中。
更新跟插入很像,也有两种方法 普通的 和 批量的。
public function getUpdateArticle()
{
$article = Article::find(1);
$article->title = 'Article_One';
$article->save();
}
public function getUpdateArticle()
{
$article = Article::find(3);
$article->update(['title' => 'Three', 'body' => 'Third']);
}
其实Model的查找跟之前我们学过的构建器很像。
public function getIndex()
{
$articles = Article::all();
foreach ($articles as $article) {
echo $article->title . '<br />';
echo $article->body . '<br />';
}
}
使用find 通过主键查找:
public function getIndex()
{
$article = Article::find(1);
dd($article->body);
}
我们也可以判断是否取到了Model:
public function getIndex()
{
$article = Article::find(2);
if (!isset($article)){
abort(404,'Not Found');
}
dd($article);
}
当未取到值是自动报错 应对这种场景 也可以使用findOrFail:
public function getIndex()
{
$article = Article::findOrFail(2);
dd($article);
}
这就是和构建器相似的地方,你可以像约束构建器一样约束它 这里就不多说了 给了例子吧:
public function getIndex()
{
$article = Article::where('id','>',2)->orderBy('comment_count','desc')->lists('title')->toArray();
dd($article);
}
先写这么多,下一篇说下Model的删除功能。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本篇文章给大家带来了关于thinkphp的相关知识,其中主要介绍了关于使用think-queue来实现普通队列和延迟队列的相关内容,think-queue是thinkphp官方提供的一个消息队列服务,下面一起来看一下,希望对大家有帮助。
简介检测一个类是否可以使用 foreach 进行遍历的接口。无法被单独实现的基本抽象接口。相反它必须由 IteratorAggregate 或 Iterator 接口实现。Note:实现此接口...
swoole服务器无法连接的解决办法:首先通过命令“php -m”检查swoole扩展;然后使用命令“firewall-cmd --state”查看防火墙是否关闭;接着使用命令“telnet”进行连接测试即可。
laravel中has方法可以用来查询数据间是否有关联关系,常用于判断当前请求中是否含有指定的值,如果请求中存在该值则has()方法将会返回true,当给定一个数组时,该方法将会判断指定的值是否全部存在,语法为“has('name')”。
这篇文章主要介绍了ThinkPHP5.0框架实现切换数据库的方法,结合实例形式分析了thinkPHP5.0数据库的配置与动态连接相关操作技巧,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008