有两种方法供你选择:
创新互联公司服务项目包括大同网站建设、大同网站制作、大同网页制作以及大同网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,大同网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到大同省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
使用Laravel集合的 map 方法。该方法适用于单个表单。
使用中间件。该方法适用于有多个表单
单个表单
可以使用集合的map方法进行过滤,然后使用得到的 $params 进行操作。
public function post(Request $request){ // 过滤空值,并且trim
$params = collect($request)-map(function ($item) { if (is_string($item)) {
$item = empty(trim($item)) ? null : trim($item);
} return $item;
}); // 现在表单的内容在 $params 中了,并且去掉了空值}
关于里面函数的具体意义请参考官方文档。
多个表单
首先推荐看一下官方文档。
其实也是使用了上面的代码进行过滤,不过这是在中间件中进行的,只要在需要进行过滤的路由中使用这个中间件即可做到,这样无需再每一个Controller中写一遍了。
先用 php artisan make:middleware RejectEmptyValues 命令创建一个中间件。
此命令将会在 app/Http/Middleware 目录内设定一个名称为 RejectEmptyValues 的类。
修改 RejectEmptyValues 的代码
?phpnamespace App\Http\Middleware;use Closure;class RejectEmptyValues{ /**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{ // 过滤空值,并且trim
$params = collect($request)-map(function ($item) { if (is_string($item)) {
$item = empty(trim($item)) ? null : trim($item);
} return $item;
});
$request-replace($params-all()); return $next($request);
}
}
注册中间件,在 app/Http/Kernel.php 文件的 $routeMiddleware 中加入一行
'reject_empty_values' = \App\Http\Middleware\RejectEmptyValues::class,
使用中间件示例,
Route::post('/test','TestController@post')-middleware('reject_empty_values');
修改mysql中列的默认值的方法:
若本身存在默认值,则先删除:
alter table表名alter column字段名drop default;
然后设置默认值(若本身不存在则可以直接设定)
alter table表名 alter column字段名 set default默认值;
设置mysql的字符集,mysql -e "set @@global.character-set-server=utf8";或者直接在配置文件中加入character-set-server=utf8,重启数据库就行。
再查看mysqladmin var | grep character_set_server,是否修改成功。
创建数据库的时候,直接指定数据库的字符集,之后再该数据库中创建表的时候就不用再指定了,所有创建的表都是跟数据库字符集一样的。
列如:
create database 'dbname' default character set utf8;
这样在数据库dbname中在创建表的时候,只要不指定字符集,默认都是utf8