Hello
最近看了Laracasts的Laravel5
教程视频,感慨很多啊。凭着我半吊子英语都觉得Laravel
绝对有向Rails
看齐的能力。
今天开始做一些小的笔记。
安装
我并没有写安装的介绍。上面的中文文档对安装这一块写的特别的详细,而且是纯中文。
Database
创建数据库:
Notice:
这里有个小坑,好吧,不能算是坑。
创建数据库必须,必须,必须用复数形式!!!
我们不能通过migrate创建数据库,而是要手动创建,好在我还知道那么些SQL
语法,这也难不倒:)
Anyway, here we go.
首先要运行:
添加数据库的表
如果想要干掉某行(字段),那么需要添加一个composer
包才能运行:
数据库里面需要一些测试数据怎么办呢?
5.1版本带来了很有用的新方法:
database/factories/ModelFactory.php
写入:
在database/seeds/DatabsesSeeder.php
写入:
现在运行:
好了,去数据库查看数据吧!
当然还有简便的方法,这样的假数据我们只会在测试的时候使用,所以没必要非得在文件里面写入,那么这个简单的方法比较合适
$ php artisan tinker
factory(‘App\User’)->create();
然后创建Model
现在需要传入数据到数据库中,那么怎么做呢?直接传入数组数据是不行的,因为比较危险,但是我们比较了解,可以这么用,那么就可以在这里
App/Article.php
View
使一个页面局部总是接受数据
这个翻译不知道合不合适,原话是When You Want a View Partial to Always Recive Data
好吧,不纠结翻译了。如果是你你怎么做?
之前我在用ThinkPHP
的时候技术太差呗,就是一个页面一个页面的写,写重复的内容
发出申请
接收数据
渲染页面
repeat * n
这里完全没有黑ThinkPHP
的意思,当初我用它还是很幸福的,把我从手写的困境中拯救了出来.
不扯了,接着说。这样的重复自己是不是非常的无聊,低效率,而且维护比较麻烦.
噔噔噔噔~Laravel
出来拯救你啦~
这里做个例子吧:
在导航条里面写一个最后的一篇文章,每个页面都需要。所以建立一个文件nav.blade.php
,放在partials
里面。因为是一个视图文件,所以要放在Views
目录下。
里面写上:
那么,@include
我就不写了。
然后去App
目录下的Providers
里面的AppServiceProvider.php
找到boot函数:
这样,所有的有这个视图的文件进行渲染的时候都会经过这一步。而这一步里获取到了数据并填充到文件里,是不是很优雅,很舒适?
其实5.1
版本加入一种inject
的方法可以更优雅的解决这个问题,先占个坑,想好了再写。
Workflow
首先定义路由:
App/Http/Routes.php
下,写入:
那么,创建控制器:
之后是去Controller
里面写点儿东西:
Assets
刚好看到Assets,先稍微写一下:
Laravel
使用gulp来对整理前端依赖的。首先要先把gulp依赖下载下来。
默认自动带有bootstrap-sass
在resources/assets/sass/app.scss
里面解除注释
然后在glupfile.js
中写这样的东西:
好了,那么都是什么意思呢?mix
是mixin的意思哦,第二行首先是把Sass编译成css
,CoffeeScript编译成Javascript
,是吧^_^
然后是混合选定的css文件,怎么选呢?min.style的三个参数分别是被混合的文件名,混合后的生成地址,被混合文件的所在目录
那么同理,mix.scripts
也是混合喽~
Ok,there we go!
那么,如何运行这个命令?好办:
这样就可以了。
生产环境怎么办呢?
需要版本更迭的时候,因为浏览器会缓存,所以有时候并不能正确的推送给用户,那么这个时候就需要给这些以相应的版本号,幸好,glup
都帮我们干了,我们只要写这么一句:
那么,如何在使用?
只需要在layout
文件里把link改成:
它就会自动转换成带有版本号的样子
Session
可以用Redis
来替代。可以参考我的另一篇Redis笔记
设置:
使用(视图模板)
加入了Flash
的package之后更是可以这样使用:
当然啦,得在模板里加入:
首先要安装下面的Form
的package。然后来创作表单吧!
tags
那一段的null
表示的是被选中的情况,如果是1,就表示value
为1的被选中。
如果有时候忘记了参数是什么,随时看源码,写的非常的清楚!
Upload
哈哈~这就上传完成啦~
Cache
无奈嘛,总想让自己的网站快一点儿。
我是因为使用的美帝的VPS
。所以我感觉速度可能出在加载图片文件上。
第一步,我申请了一个七牛云存储,然后把比较大的视频和图片文件放在了七牛的空间里,免费用户有10G
的空间呢,对我来说还是挺够用个。
第二步,开启Redis
缓存,将所有的Cache
转用到Redis
,这样可以尽量避免一些session
的负面影响。
Packages
需要引入的包要用composer
的方式引入,例如:
- illuminate/html
在config/app.php
下注册:
这个不需要再boot里面再加入了。
所要修改的只有config/database.php
把cache
换成redis
就可以啦~
Production
生产环境还是得做一些操作的,比如关掉调试模式
,以下这些就是需要注意的地方。
Resources