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

本文实例讲述了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程序设计有所帮助。

(0)

相关推荐

  • laravel学习教程之关联模型

    Eloquent: 关联模型 简介 数据库中的表经常性的关联其它的表.比如,一个博客文章可以有很多的评论,或者一个订单会关联一个用户.Eloquent 使管理和协作这些关系变的非常的容易,并且支持多种不同类型的关联:     一对一     一对多     多对多     远程一对多     多态关联     多态多对多关联 定义关联 Eloquent 关联可以像定义方法一样在 Eloquent 模型类中进行定义.同时,它就像 Eloquent 模型自身一样也提供了强大的查询生成器.这允许关联模

  • Laravel框架模型的创建及模型对数据操作示例

    本文实例讲述了Laravel框架模型的创建及模型对数据操作.分享给大家供大家参考,具体如下: 模型创建: <?php namespace App; use Illuminate\Database\Eloquent\Model; class Admin extends Model{ //指定表名 protected $table = 'wd_user'; //指定允许批量复制的字段 protected $fillable = ['username']; //指定id protected $prim

  • Laravel5.1 框架模型查询作用域定义与用法实例分析

    本文实例讲述了Laravel5.1 框架模型查询作用域定义与用法.分享给大家供大家参考,具体如下: 所谓的查询作用域就是允许你自定义一个查询语句 把它封装成一个方法. 1 定义一个查询作用域 定义查询作用域就是在模型中声明一个scope开头的方法: public function scopeHotArticle($query) { return $query->orderBy('comment_count','desc')->first(); } 然后可以这样使用: public functi

  • Laravel关联模型中过滤结果为空的结果集(has和with区别)

    首先看代码: $userCoupons = UserCoupons::with(['coupon' => function($query) use($groupId){ return $query->select('id', 'group_id', 'cover', 'group_number', 'group_cover')->where([ 'group_id' => $groupId, ]); }]) // 更多查询省略... 数据结构是三张表用户优惠券表(user_coup

  • Laravel5.1 框架模型软删除操作实例分析

    本文实例讲述了Laravel5.1 框架模型软删除操作.分享给大家供大家参考,具体如下: 软删除是比较实用的一种删除手段,比如说 你有一本账 有一笔记录你觉得不对给删了 过了几天发现不应该删除,这时候软删除的目的就实现了 你可以找到已经被删除的数据进行操作 可以是还原也可以是真正的删除. 1 普通删除 在软删除之前咱先看看普通的删除方法: 1.1 直接通过主键删除 public function getDelete() { Article::destroy(1); Article::destro

  • Laravel 模型关联基础教程详解

    在 Laravel 中定义模型关联是每个 Laravel 开发者可能已经做过不止一次的事情.但是在试图实现关联时可能会遇到各种问题.因为 Laravel 有各种各样的关联,你应该选择哪一个?当涉及到查询模型时,我们如何充分利用模型关联的功能? Laravel 的模型关联可能会让人糊涂.如果你不完全理解 Laravel 的关联在这一点上是如何工作的,别担心,读完这篇文章后,你会更好地理解它. 我们应该使用哪个模型关联? 要回答这个问题,首先你要知道有哪些可用的选项.Laravel 有 3 种不同的

  • Laravel 5框架学习之模型、控制器、视图基础流程

    添加路由 复制代码 代码如下: Route::get('artiles', 'ArticlesController@index'); 创建控制器 复制代码 代码如下: php artisan make:controller ArticlesController --plain 修改控制器 <?php namespace App\Http\Controllers; use App\Article; use App\Http\Requests; use App\Http\Controllers\Co

  • Laravel使用模型实现like模糊查询的例子

    使用模型实现数据的增删改查的好处真的很多,比简单的DB类实现要安全的多 ,强烈建议使用 其它操作文档里有,就不说了,说一个一般大神不会用的,like模糊查询. 下面这段代码是通过URL来查询的,通过表单提交实现查询的话,自个儿琢磨 public function search(Request $request){ $echostr=$request->input("search"); $msg=Search::where('title',$echostr)->orWhere

  • Laravel5.1 框架模型工厂ModelFactory用法实例分析

    本文实例讲述了Laravel5.1 框架模型工厂ModelFactory用法.分享给大家供大家参考,具体如下: 今天要说的是模型工厂,它是可以快速生成一些测试数据的东西,之前我们介绍过Seeder,当我们使用模型访问数据时 可以用模型工厂搭配Seeder使用. 1 编写一个ModelFactory ModelFactory的路径在 database/factories/ 下: // 这是系统自带的工厂 $factory->define(App\User::class, function ($fa

  • laravel框架模型、视图与控制器简单操作示例

    本文实例讲述了laravel框架模型.视图与控制器简单操作.分享给大家供大家参考,具体如下: laravel 的模型 建立model文件,再项目的app目录下建立Member.php namespace App; use Illuminate\Database\Eloquent\Model; class Member extends Model { public static function getHello(){ return 'hello model'; } } 使用控制器调用 names

  • laravel学习笔记之模型事件的几种用法示例

    前言 本文主要给大家介绍了关于laravel模型事件用法的相关内容,文中通过示例代码介绍了laravel模型事件的多种用法,下面话不多说了,来一起看看详细的介绍吧. 用法示例 一 .简单粗鲁(用于本地测试) 路由中定义: Event::listen('eloquent.updated: App\Post',function (){ dump('测试一下修改事件'); }); Route::post('/post/{id}', 'PostController@update'); 二 .生成事件和监

  • Laravel模型事件的实现原理详解

    前言 Laravel的ORM模型在一些特定的情况下,会触发一系列的事件,目前支持的事件有这些:creating, created, updating, updated, saving, saved, deleting, deleted, restoring, restored,那么在底层是如何实现这个功能的呢? 下面话不多说了,来一起看看详细的介绍吧. 1.如何使用模型事件 先来看看如何使用模型事件,文档里面写了两种方法,实际上总共有三种方式可以定义一个模型事件,这里以saved事件来做例子,其

随机推荐