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

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

1 创建模型

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

php artisan make:model Article

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

php artisan make:model Article -m

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

2 模型常用属性

2.1 自定义表名

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

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

class Article extends Model
{
  protected $table = 'K_Articles';
}

2.2 自定义主键

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

class Article extends Model
{
  protected $primaryKey = 'article_id';
}

2.3 时间戳

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

class Article extends Model
{
  public $timestamps = false;
}

2.4 白名单和黑名单

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

class Article extends Model
{
  protected $fillable = ['title', 'body'];
}

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

3 创建数据(模型)

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

3.1 普通创建模型

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

  public function getCreateArticle()
  {
    $article = new Article();
    $article->title = 'One';
    $article->body = 'Learn Laravel Model';
    $article->save();
  }

3.2 批量创建

批量赋值就是使用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并没有被填充,原因是:它不在白名单中 或者 它在黑名单中。

4 更新

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

4.1 普通更新

  public function getUpdateArticle()
  {
    $article = Article::find(1);
    $article->title = 'Article_One';
    $article->save();
  }

4.2 批量更新

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

5 查找

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

5.1 获取全部的模型

  public function getIndex()
  {
    $articles = Article::all();
    foreach ($articles as $article) {
      echo $article->title . '<br />';
      echo $article->body . '<br />';
    }
  }

5.2 获取单个模型

使用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);
  }

5.3 通过约束获取模型

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

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

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

更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

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

Laravel5.1 框架模型创建与使用方法实例分析的更多相关文章

  1. laravel框架模型中非静态方法也能静态调用的原理分析

    这篇文章主要介绍了laravel框架模型中非静态方法也能静态调用的原理,结合实例形式分析了laravel模型基类中使用魔术方法实现非静态方法进行静态调用的相关原理,需要的朋友可以参考下

  2. python神经网络Densenet模型复现详解

    这篇文章主要为大家介绍了python神经网络Densenet模型复现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  3. Laravel模型间关系设置分表的方法示例

    这篇文章主要给大家介绍了关于Laravel模型间关系设置分表的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

  4. Laravel5.1 框架文件管理操作实例分析

    这篇文章主要介绍了Laravel5.1 框架文件管理操作,结合实例形式分析了laravel5.1框架文件管理相关的配置、磁盘获取以及文件目录操作技巧,需要的朋友可以参考下

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

    这篇文章主要介绍了Laravel5.1 框架模型创建与使用方法,结合实例形式分析了laravel5.1框架模型的原理、创建、更新、获取等相关操作技巧,需要的朋友可以参考下

  6. python神经网络ResNet50模型的复现详解

    这篇文章主要为大家介绍了python神经网络ResNet50模型的复现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  7. PHP 5.0对象模型深度探索之绑定

    静态绑定发生于数据结构和数据结构间,程序执行之前.静态绑定发生于编译期,因此不能利用任何运行期的信息。因为PHP是一种动态语言,它不使用静态绑定。动态绑定则针对运行期产生的访问请求,只用到运行期的可用信息。Public和protected成员的动作类似于PHP的前几个版本中函数的动作,使用动态绑定。Private成员只存在于它们所在的类内部.不像public和protected成员那样,PHP模拟静态绑定.看例子6.11。Listing6.12动态绑定的好处

  8. Python PaddlePaddle机器学习之求解线性模型

    这篇文章主要介绍了Python PaddlePaddle机器学习之求解线性模型,文章围绕主题展开详细的内容介绍,具有一定参考价值,需要的小伙伴可以参考一下

  9. Laravel5.1 框架Request请求操作常见用法实例分析

    这篇文章主要介绍了Laravel5.1 框架Request请求操作常见用法,结合实例形式分析了Laravel5.1 框架Request请求操作常见的属性和方法,及相关操作注意事项,需要的朋友可以参考下

  10. laravel5.1框架基础之路由详解

    这篇文章主要介绍了laravel5.1框架基础之路由,结合实例形式分析了Laravel框架中路由的概念、原理、基本路由操作与相关注意事项,需要的朋友可以参考下

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部