本文實例講述了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程序設計有所幫助。
您可能感興趣的文章:- 在laravel中實現ORM模型使用第二個數據庫設置
- 使用laravel的Eloquent模型如何獲取數據庫的指定列
- Laravel5.1 框架關聯模型之后操作實例分析
- Laravel5.1 框架模型多態關聯用法實例分析
- Laravel5.1 框架模型遠層一對多關系實例分析
- Laravel5.1 框架模型一對一關系實現與使用方法實例分析
- Laravel5.1 框架模型查詢作用域定義與用法實例分析
- Laravel5.1 框架模型軟刪除操作實例分析
- Laravel框架視圖和模型操作方法分析
- Laravel 5框架學習之模型、控制器、視圖基礎流程
- laravel學習教程之關聯模型
- laravel框架模型和數據庫基礎操作實例詳解