我的Laravel学习之路之Eloquent 入门
来源:互联网 发布:韦东山嵌入式linux 编辑:程序博客网 时间:2024/05/01 08:53
Laravel 的 Eloquent ORM 提供了漂亮、简洁的 ActiveRecord 实现来和数据库进行交互。每个数据库表都有一个对应的「模型」可用来跟数据表进行交互。你可以通过模型查询数据表内的数据,以及将记录添加到数据表中。
中文文档:http://d.laravel-china.org/docs/5.5/eloquent
我们通过php artisan 可以查看到有一个命令叫做 make:model // Create a new Eloquent model class
本章主要讲述Eloquent的基本用法
上一节我们通过migration 创了了samples表
现在我们通过php artisan make:model Samples //来创建Samples模型
创建成功后,我们可以在laravel/app的目录下产生一个Samples和Users一样存在的php的文件
如何使用呢:
第一:
假如我们定一个一个模型类Flight,并且它对应了数据库中的flight表,(如果需要指定表情使用protected $table = 'my_flights';)
完毕后可以通过以下方式来实例化
比如你可以$samples = new App\Samples;来获取一个新对象,然后使用$samples来进行操作
// 通过主键取回一个模型...
$flight = App\Flight::find(1);
// 取回符合查询限制的第一个模型 ...
$flight = App\Flight::where('active', 1)->first();
第二:模拟
我们通过php artisan tinker命令来进入一个命令行交互界面,操作过memcahe和redis以及linux下mysql命令界面的都会比较熟悉了,
在模型samples表中有以下字段:id,created_at,updated_at,intro.
如何使用呢,我么通过$samples = new App\Samples;然后$samples->intro = 'xxx';然后执行$samples->save();
当你看到返回一个true时,那么恭喜你插入数据已经成功.id和创建时间及更新时间字段laravel都会自动生成!
Laravel够强大吧!
小技巧,如果你要获取当前时间,你可以使用laravel自带的一个类
可以use Carbon\Carbon; 然后使用$new = Carbon::now();
当然如果不引入,也可以直接使用:$now = Carbon\Carbon::now();
心得:请注意,创建模型类以后,在控制器中:
use App\Samples; 引入 然后$samples = new Samples;
虽然我们在配置中已经定义了ASSOC数据库查询返回数组格式,但是经过实践发现
使用$samples::get() 以及all() 或者find() 等都是返回的对象,除非你在后面->toArray()转为数组
否则遍历的时候请注意是使用->还是[]方式获取.
如果使用填充的话:$samples->create(['inrto'=>'aaa'])会报一个Mass-Assignment漏洞错误
这时我么需要在模型中protected $fillable = ['name'];多个字段使用,分开即可,代表允许赋值的字段.
注意修改之后,如果使用的是php artisan tinker命令,需要退出重新进入
而$guarded=['name']代表禁止赋值的黑名单.
这是5.5的用法,当然,如果你允许所有所有字段可以赋值,可设置为protected $guarded = [];为空
Eloquent 也会假设每个数据表都有一个叫做 id 的主键字段。你也可以定义一个 $primaryKey 属性来重写这个约定。
此外,Eloquent 假定主键是一个递增的整数值,这意味着在默认情况下主键将自动的被强制转换为 int。 如果你想使用非递增或者非数字的主键,你必须在你的模型 public $incrementing 属性设置为false。
时间戳#
默认情况下,Eloquent 会认为在你的数据库表有 created_at 和 updated_at 字段。如果你不希望让 Eloquent 来自动维护这两个字段,可在模型内将 $timestamps 属性设置为 false:
- 我的Laravel学习之路之Eloquent 入门
- laravel学习笔记之Eloquent ORM
- PHP laravel之模型&Eloquent
- php Laravel框架学习(二) 之 Eloquent 基础
- php Laravel框架学习(二) 之 Eloquent 高级应用
- larvael学习之Eloquent
- 我的Laravel学习之路之模板继承
- 我的Laravel学习之路之环境配置
- 我的Laravel学习之路之表单验证 validation
- 我的Laravel学习之路之我的Laravel学习之路之用户注册和登录 Auth
- Laravel数据库操作之-Eloquent ORM
- laravel 5.5 -- Eloquent 入门
- 我的Laravel学习之路之migration Laravel自带命令行数据库创建和管理工具
- 我的Laravel学习之路之Laravel Forms 使用,illuminate/html包
- laravel的Eloquent模型
- laravel的Eloquent起步
- Laravel五大功能之Eloquent关系模式
- Laravel五大功能之Eloquent关系模式
- vs常用快捷键整理
- 谁是云的王者?OpenStack与VMware优劣对比
- spfa+位运算 2017.10.9 t3
- 第三方图片框架
- [46137] 出现 CSF 错误。错误代码: 43131。
- 我的Laravel学习之路之Eloquent 入门
- 【第四节】 你好, 三角形
- 你能Get到笑点么?
- 在Android上实现HttpServer
- 如何实现点击Winform程序窗体中的一个按钮,执行这个exe文件?
- 一行代码让你的TableView动起来-iOS动画
- Python 中的作用域规则和闭包简析
- 威力百科15 v15.0中文旗舰版下载
- 什么是OOP? OOP相对于面向过程编程有哪些优点?