Laravel Mix
1.安装node.js, yarn (全局)
2.Yarn 配置安装加速: yarn config set registry https://registry.npm.taobao.org
3.使用 Yarn 安装依赖:yarn install 安装成功后,运行: npm run watch-poll
字体图标库Font Awesome
1. yarn add @fortawesome/fontawesome-free
2. resources/sass/app.scss
// Fontawesome
@import '~@fortawesome/fontawesome-free/scss/fontawesome';
@import '~@fortawesome/fontawesome-free/scss/regular';
@import '~@fortawesome/fontawesome-free/scss/solid';
@import '~@fortawesome/fontawesome-free/scss/brands';
3. 运行: npm run watch-poll
验证码
1. composer require "mews/captcha"
2. 生成配置文件 config/captcha.php
return [
'characters' => '2346789abcdefghjmnpqrtuxyzABCDEFGHJMNPQRTUXYZ',
'default' => [
'length' => 5,
'width' => 120,
'height' => 36,
'quality' => 90,
],
'flat' => [
'length' => 6,
'width' => 160,
'height' => 46,
'quality' => 90,
'lines' => 6,
'bgImage' => false,
'bgColor' => '#ecf2f4',
'fontColors'=> ['#2c3e50', '#c0392b', '#16a085', '#c0392b', '#8e44ad', '#303f9f', '#f57c00', '#7952b'],
'contrast' => -5,
],
'mini' => [
'length' => 3,
'width' => 60,
'height' => 32,
],
'inverse' => [
'length' => 5,
'width' => 120,
'height' => 36,
'quality' => 90,
'sensitive' => true,
'angle' => 12,
'sharpen' => 10,
'blur' => 2,
'invert' => true,
'contrast' => -5,
]
];
3 register.blade.php 添加
<div class="form-group row {{ $errors->has('captcha') ? ' has-error' : '' }}">
<label for="captcha" class="col-md-4 control-label text-md-right">验证码</label>
<div class="col-md-6">
<input id="captcha" class="form-control" name="captcha" >
<img class="thumbnail captcha" src="{{ captcha_src('flat') }}" onclick="this.src='/captcha/flat?'+Math.random()" title="点击图片重新获取验证码" />
@if ($errors->has('captcha'))
<span class="help-block">
<strong>{{ $errors->first('captcha') }}</strong>
</span>
@endif
</div>
</div>
4 app/Http/Controllers/Auth/RegisterController.php
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
'captcha' => ['required', 'captcha'],
], [
'captcha.required' => '验证码不能为空',
'captcha.captcha' => '请输入正确的验证码',
]);
}
summerblue/generator代码生成器
1. composer require "summerblue/generator:~1.0" --dev
2.
php artisan make:scaffold Topic --schema="title:string:index,body:text,user_id:integer:unsigned:index,
category_id:integer:unsigned:index,reply_count:integer:unsigned:default(0),
view_count:integer:unsigned:default(0),last_reply_user_id:integer:unsigned:default(0),
order:integer:unsigned:default(0),excerpt:text,slug:string:nullable"
接下来我们看下代码生成器为我们做了哪些事情:
- 创建话题的数据库迁移文件 —— 2017_09_26_111713_create_topics_table.php;
- 创建话题数据工厂文件 —— TopicFactory.php;
- 创建话题数据填充文件 —— TopicsTableSeeder.php;
- 创建模型基类文件 —— Model.php, 并创建话题数据模型;
- 创建话题控制器 —— TopicsController.php;
- 创建表单请求的基类文件 —— Request.php,并创建话题表单请求验证类;
- 创建话题模型事件监控器
TopicObserver
并在AppServiceProvider
中注册; - 创建授权策略基类文件 —— Policy.php,同时创建话题授权类,并在
AuthServiceProvider
中注册; - 在 web.php 中更新路由,新增话题相关的资源路由;
- 新建符合资源控制器要求的三个话题视图文件,并存放于
resources/views/topics
目录中; - 执行了数据库迁移命令
artisan migrate
; - 因此次操作新建了多个文件,最终执行
composer dump-autoload
来生成 classmap。
(作者:足迹人生2017 链接:https://www.jianshu.com/p/0e1f927dcec1 来源:简书)