一、下载 laravel 5.4
composer create-project laravel/laravel=5.4.* laravel5.4_middleware
新建数据库 laravel5.4_middleware
修改 .evn 配置文件
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel5.4_middleware
DB_USERNAME=laravel5.4_middleware
DB_PASSWORD=laravel5.4_middleware
修改中国时区,在 config/app.php 中修改
'timezone' => 'PRC',
切换目录
cd laravel5.4_middleware
二、创建模型
创建 post model
php artisan make:model Post -m
修改迁移文件:posts_table.php
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('content');
$table->timestamps();
});
}
执行数据迁移
php artisan migrate
如果报错
Specified key was too long; max key length is 1000 bytes
问题解决:在 AppServiceProvider 中调用 Schema::defaultStringLength 方法来实现配置:
use Illuminate\Support\Facades\Schema;
public function boot()
{
Schema::defaultStringLength(191);
}
三、创建控制器
创建 PostController
php artisan make:controller PostController
修改 app/Http/Controllers/PostController.php
public function create()
{
return view('posts.form');
}
public function store(Request $request)
{
return $request->all();
}
新建视图文件:resources/views/posts/form.blade.php
这里引入了 CSS Bulma 框架:https://bulma.io/documentation/overview/start/
注册路由,在 routes/web.php 新增
Route::resource('posts', 'PostController');
启动 serve
php artisan serve
访问:http://127.0.0.1:8000/posts/create
四、TrimString
laravel 5.4 在 app/Http/Kernel.php 中新增了两个 middleware,其中一个就是 TrimStrings
注释掉
\App\Http\Middleware\TrimStrings::class
访问:http://127.0.0.1:8000/posts/create,输入以下内容
Content 后面输入了很多空格,点击提交按钮
发现空格也被提交过来了
取消注释
\App\Http\Middleware\TrimStrings::class
重新点击提交按钮
发现空格没有提交过来了
五、ConvertEmptyStringsToNull
laravel 5.4 在 app/Http/Kernel.php 中新增了两个 middleware,另一个就是 ConvertEmptyStringsToNull
注释掉
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class
访问:http://127.0.0.1:8000/posts/create
直接点击提交按钮
发现提交的内容都是空字符串
取消注释
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class
重新点击提交按钮
发现提交的内容都是 null