2016年08月09日
今日记录
复习下HTML与CSS还是简单的.上次用是8年前呢~
因为修改bootstrap时要用到,直接用bootstrap没什么色彩:sob:
服务器的地址 域名还没有想好.
然后还要拯救一下我的英文,太烂了:cold_sweat:
游戏的天赋精简到3层,每层4个选1个.
找到了vus.js用了处理前端数据.
总之加油:grey_exclamation:
今日计划完成度
- 复习HTML与CSS
3日计划
1. 学习gulp与sass
2. 学习数据结构
3. 了解HTML5 与 CSS3
4. bootstrap学习(前端框架)
5. 设计网站制作进度表
2016年08月05日
日期:2016年08月05日
今日记录
github.io 上不能挂载 bootstrap 样式,估计要自己写了!
boottstrap还是很简单的,前端除了javascript有点难度,其他的都简单.
下午在digital ocean 弄了一个主机,布置了一下laravel的运行环境.
当然是初步,什么都没有.地址
顺手把梯子也设置了,GFW再见了~ :smiley:
网址什么的还在考虑~ 有推荐吗~ 最好又短又好记~ :ghost:
测试jemoji :+1:!
今日计划完成度
- 主机初步搭建
3日计划
1. 学习gulp与sass
2. 学习数据结构
3. 了解HTML5 与 CSS3
4. bootstrap学习(前端框架)
5. 设计网站制作进度表
2016年08月04日
日期:2016年08月04日
今日记录
打印laravel文档,方便以后研究.
各个平台功能分析.
atom 的 markdown-preview-enhanced 插件有个功能很有意思 地址
今日计划完成度
1. laravel文档打印。
2. 安装atom插件,编辑对应笔记
3日计划
1. 学习gulp与sass
2. 学习数据结构
3. 了解HTML5 与 CSS3
4. bootstrap学习(前端框架)
5. 设计网站制作进度表
Atom设置指南
Atom
安装atom
1 | $ sudo add-apt-repository ppa:webupd8team/atom |
atom packages
atom-chrome
git-plus
markdown-pdf
markdown-preview-plus
markdown-writer
tidy-markdown
emmet
html快速编写工具
jshint
js语法插件
minimap
与sublime相似的代码预览
pigments
markdown-preview-enhanced
mermaid 渲染 flowchart 和 sequence diagram
KaTex 渲染数学表达式
需要学习LaTeX语法
$$\oint_C x^3, dx + 4y^2, dy 2 = \left( \frac{\left(3-x\right) \times 2}{3-x} \right)$$
$$\sum_{m=1}^\infty\sum_{n=1}^\infty\frac{m^2,n} {3^m\left(m,3^n+n,3^m\right)}$$
$$\phi_n(\kappa) = \frac{1}{4\pi^2\kappa^2} \int_0^\infty \frac{\sin(\kappa R)}{\kappa R} \frac{\partial}{\partial R} \left[R^2\frac{\partial D_n(R)}{\partial R}\right],dR$$
PlantUML 渲染图形
WaveDrom 来渲染 digital timing diagram.
使用json样式文本
1 | {signal: [ |
Viz.js 来渲染 dot language 图形.
1 | graph ethane { |
reveal.js 来渲染漂亮的 presentations
幻灯片样式
laravel 学习指南 第八章 第五节
- TOC
{:toc}
8.5 序列化
8.5.1 简介
当构建 JSON API
时,经常需要转化模型和关联关系为数组
或JSON
。Eloquent 包含便捷方法实现这些转换,以及控制哪些属性被包含到序列化中。
8.5.2 基本使用
8.5.2.1 转化模型为数组
要转化模型及其加载的关联关系为数组,可以使用 toArray
方法。这个方法是递归的,所以所有属性及其关联对象属性(包括关联的关联)都会被转化为数组:
1 | $user = App\User::with('roles')->first(); |
还可以转化集合为数组:
1 | $users = App\User::all(); |
8.5.2.2 转化模型为 JSON
要转化模型为 JSON,可以使用 toJson
方法,和 toArray
一样,toJson
方法也是递归的,所有属性及其关联属性都会被转化为 JSON:
1 | $user = App\User::find(1); |
你还可以转化模型或集合为字符串,这将会自动调用 toJson
方法:
1 | $user = App\User::find(1); |
由于模型和集合在转化为字符串的时候会被转化为 JSON,你可以从应用的路由或控制器中直接返回 Eloquent 对象:
1 | Route::get('users',function(){ |
8.5.3 在 JSON 中隐藏属性
有时候你希望在模型数组或 JSON 显示中隐藏某些属性,比如密码,要实现这个,在定义模型的时候设置 $hidden
属性:
1 | <?php |
注意:如果要隐藏关联关系,使用关联关系的方法名,而不是动态属性名。
此外,可以使用 visible
属性来定义模型数组和 JSON 显示的属性白名单:
1 | <?php |
8.5.3.1 临时暴露隐藏属性
如果你想要在特定模型中临时显示隐藏的属性,可以使用 makeVisible
方法,该方法以方法链的方式返回模型实例:
return $user->makeVisible('attribute')->toArray();
8.5.4 追加值到 JSON
有时候,需要添加数据库中没有的字段到数组中,要实现这个功能,首先要为这个值定义一个访问器:
1 | <?php |
定义好访问器后,添加字段名到该模型的 appends
属性:
1 | <?php |
字段被添加到 appends
列表之后,将会被包含到模型数组和 JSON 中,appends
数组中的字段还会遵循模型中配置的 visible
和 hidden
设置。
laravel 学习指南 第八章 第四节
- TOC
{:toc}
8.4 访问器&修改器
8.4.1 简介
访问器
和修改器
允许你在获取模型属性或设置其值时格式化 Eloquent 属性。
例如,你可能想要使用Laravel加密器对存储在数据库中的数据进行加密,并且在 Eloquent 模型中访问时自动进行解密。
除了自定义访问器和修改器,Eloquent 还可以自动转换日期字段为Carbon实例,甚至将文本转换为JSON。
8.4.2 访问器 & 修改器
8.4.2.1 定义访问器
要定义一个访问器,需要在模型中创建一个getFooAttribute
方法,其中Foo
是你想要访问的字段名(使用驼峰式命名规则)。
在本例中,我们将会为first_name
属性定义一个访问器,该访问器在获取first_name
的值时被 Eloquent 自动调用:
1 | <?php |
正如你所看到的,该字段的原生值被传递给访问器,然后返回处理过的值。
要访问该值只需要简单访问first_name
即可:
1 | $user = App\User::find(1); |
8.4.2.2 定义修改器
要定义一个修改器,需要在模型中定义setFooAttribute
方法,其中Foo
是你想要访问的字段(使用驼峰式命名规则)。
接下来让我们为first_name
属性定义一个修改器,当我们为模型上的first_name
赋值时该修改器会被自动调用:
1 | <?php |
该修改器获取要被设置的属性值,允许你操纵该值并设置 Eloquent 模型内部属性值为操作后的值。
例如,如果你尝试设置Sally
的first_name
属性:
1 | $user = App\User::find(1); |
在本例中,setFirstNameAttribute
方法会被调用,传入参数为Sally
,修改器会对其调用strtolower
函数并将处理后的值设置为内部属性的值。
8.4.3 日期修改器
默认情况下,Eloquent 将会转化created_at
和updated_at
列的值为 Carbon
实例,该类继承自 PHP 原生的Datetime
类,并提供了各种有用的方法。
你可以自定义哪些字段被自动调整修改,甚至可以通过重写模型中的$dates
属性完全禁止调整:
1 | <?php |
如果字段是日期格式时,你可以将其值设置为 UNIX 时间戳,日期字符串(Y-m-d
),日期-时间字符串,Datetime/Carbon
实例,日期的值将会自动以正确格式存储到数据库中:
1 | $user = App\User::find(1); |
正如上面提到的,当获取被罗列在$dates
数组中的属性时,它们会被自动转化为Carbon
实例,允许你在属性上使用任何Carbon
的方法:
1 | $user = App\User::find(1); |
默认情况下,时间戳的格式是Y-m-d H:i:s
,如果你需要自定义时间戳格式,在模型中设置$dateFormat
属性,该属性决定日期属性存储在数据库以及序列化为数组或 JSON
时的格式:
1 | <?php |
8.4.4 属性转换
模型中的$casts
属性为属性字段转换到通用数据类型提供了便利方法 。$casts
属性是数组格式,其键是要被转换的属性名称,其值时你想要转换的类型。目前支持的转换类型包括:integer
, real
, float
, double
, string
, boolean
, object
,array
,collection
,date
和datetime
。
例如,让我们转换is_admin
属性,将其由integer
类型(0或1)转换为boolean
类型:
1 | <?php |
现在,is_admin
属性在被访问时总是被转换为boolean
,即使底层存储在数据库中的值是integer
:
1 | $user = App\User::find(1); |
8.4.4.1 数组转换
array
类型转换在处理被存储为,序列化 JSON 格式的字段时特别有用。
例如,如果数据库有一个TEXT
字段类型包含了序列化JSON
,添加array
类型转换到该属性将会在 Eloquent 模型中访问其值时自动将其反序列化为PHP
数组:
1 | <?php |
类型转换被定义后,访问options
属性将会自动从 JSON
反序列化为 PHP
数组,反之,当你设置options
属性的值时,给定数组将会自动转化为 JSON
以供存储:
1 | $user = App\User::find(1); |