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', 'ment_count'=>10]); }
↑ 这是批量创建模型,有个细节哈 我们在fillable中没有添加ment_count create方法中的数组有ment_count的键值。。。结果呢 ment_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('ment_count','desc')->lists('title')->toArray(); dd($article); }
先写这么多,下一篇说下Model的删除功能。
更多关于Laravel相关内容感兴趣的读者可查看本站专题《》、《》、《》、《》及《》
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程