佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Laravel5.1 框架模型創(chuàng)建與使用方法實例分析

Laravel5.1 框架模型創(chuàng)建與使用方法實例分析

熱門標簽:服務器配置 團購網(wǎng)站 Mysql連接數(shù)設置 銀行業(yè)務 科大訊飛語音識別系統(tǒng) 電子圍欄 阿里云 Linux服務器

本文實例講述了Laravel5.1 框架模型創(chuàng)建與使用方法。分享給大家供大家參考,具體如下:

Laravel的模型也是訪問數(shù)據(jù)庫的,它更加面向?qū)ο螅粋€模型對應著一張表 我們可以使用模型對數(shù)據(jù)做一些增刪改查的操作。

1 創(chuàng)建模型

創(chuàng)建模型是可以使用Artisan控制臺的:

php artisan make:model Article

一般我比較喜歡連帶著migration一起生成:

php artisan make:model Article -m

↑ 執(zhí)行了上面的Artisan命令后 我們就可以在 /app 下找到我們剛剛創(chuàng)建的模型了,順便也生成好了migration。

2 模型常用屬性

2.1 自定義表名

一個model對應一個表,model對應的表名默認是model名字的復數(shù) 即: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 時間戳

在咱的數(shù)據(jù)表之中 有create_at 和 update_at 兩個時間戳 是Laravel自動管理的,如果你不想要自動管理這兩個列 可以這樣做:

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

2.4 白名單和黑名單

當我們用到批量創(chuàng)建和批量修改時 必須聲明黑名單或白名單,在白名單中的屬性是可以填充的屬性,在黑名單中的屬性是不允許被填充的屬性:

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

注意:不知道怎么用沒關系,3.2我們就會說批量創(chuàng)建。

3 創(chuàng)建數(shù)據(jù)(模型)

創(chuàng)建模型有兩種方法,第一種就是普通的創(chuàng)建,第二種是批量創(chuàng)建。

3.1 普通創(chuàng)建模型

普通創(chuàng)建就是新建一個模型:

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

3.2 批量創(chuàng)建

批量賦值就是使用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]);
  }

↑ 這是批量創(chuàng)建模型,有個細節(jié)哈 我們在fillable中沒有添加comment_count 但是create方法中的數(shù)組有comment_count的鍵值。。。結(jié)果呢 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的查找跟之前我們學過的構(gòu)建器很像。

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 通過約束獲取模型

這就是和構(gòu)建器相似的地方,你可以像約束構(gòu)建器一樣約束它 這里就不多說了 給了例子吧:

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

先寫這么多,下一篇說下Model的刪除功能。

更多關于Laravel相關內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門與進階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《php面向?qū)ο蟪绦蛟O計入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》

希望本文所述對大家基于Laravel框架的PHP程序設計有所幫助。

您可能感興趣的文章:
  • 在laravel中實現(xiàn)ORM模型使用第二個數(shù)據(jù)庫設置
  • 使用laravel的Eloquent模型如何獲取數(shù)據(jù)庫的指定列
  • Laravel5.1 框架關聯(lián)模型之后操作實例分析
  • Laravel5.1 框架模型多態(tài)關聯(lián)用法實例分析
  • Laravel5.1 框架模型遠層一對多關系實例分析
  • Laravel5.1 框架模型一對一關系實現(xiàn)與使用方法實例分析
  • Laravel5.1 框架模型查詢作用域定義與用法實例分析
  • Laravel5.1 框架模型軟刪除操作實例分析
  • Laravel框架視圖和模型操作方法分析
  • Laravel 5框架學習之模型、控制器、視圖基礎流程
  • laravel學習教程之關聯(lián)模型
  • laravel框架模型和數(shù)據(jù)庫基礎操作實例詳解

標簽:蚌埠 衢州 萍鄉(xiāng) 大理 江蘇 廣元 棗莊 衡水

巨人網(wǎng)絡通訊聲明:本文標題《Laravel5.1 框架模型創(chuàng)建與使用方法實例分析》,本文關鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    泉州市| 遵义县| 伊吾县| 宜丰县| 武威市| 长阳| 临猗县| 武清区| 长沙县| 永嘉县| 石门县| 云梦县| 仙桃市| 全南县| 安泽县| 澜沧| 贺兰县| 忻州市| 阿坝县| 洪湖市| 政和县| 阜新| 松原市| 民丰县| 葵青区| 巴彦淖尔市| 耿马| 工布江达县| 高安市| 柘城县| 保靖县| 潍坊市| 宿迁市| 东方市| 昌邑市| 保亭| 望谟县| 霍城县| 东莞市| 安仁县| 衡山县|