有兩種方法供你選擇:
創(chuàng)新互聯(lián)公司服務(wù)項目包括大同網(wǎng)站建設(shè)、大同網(wǎng)站制作、大同網(wǎng)頁制作以及大同網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,大同網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到大同省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
使用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;
}); ? ?// 現(xiàn)在表單的內(nèi)容在 $params 中了,并且去掉了空值}
關(guān)于里面函數(shù)的具體意義請參考官方文檔。
多個表單
首先推薦看一下官方文檔。?
其實也是使用了上面的代碼進行過濾,不過這是在中間件中進行的,只要在需要進行過濾的路由中使用這個中間件即可做到,這樣無需再每一個Controller中寫一遍了。
先用?php artisan make:middleware RejectEmptyValues?命令創(chuàng)建一個中間件。?
此命令將會在?app/Http/Middleware?目錄內(nèi)設(shè)定一個名稱為?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;
然后設(shè)置默認值(若本身不存在則可以直接設(shè)定)
alter table表名 alter column字段名 set default默認值;
設(shè)置mysql的字符集,mysql -e "set @@global.character-set-server=utf8";或者直接在配置文件中加入character-set-server=utf8,重啟數(shù)據(jù)庫就行。
再查看mysqladmin var | grep character_set_server,是否修改成功。
創(chuàng)建數(shù)據(jù)庫的時候,直接指定數(shù)據(jù)庫的字符集,之后再該數(shù)據(jù)庫中創(chuàng)建表的時候就不用再指定了,所有創(chuàng)建的表都是跟數(shù)據(jù)庫字符集一樣的。
列如:
create?database?'dbname'?default?character?set?utf8;
這樣在數(shù)據(jù)庫dbname中在創(chuàng)建表的時候,只要不指定字符集,默認都是utf8