1.簡介
Laravel Hash 門面爲存儲用戶密碼提供了安全的Bcrypt 哈希算法。若是你正在使用Laravel 應用自帶的Au
thController 控制器,將會自動爲註冊和認證使用該Bcrypt 。
Bcrypt 是散列密碼的絕佳選擇,由於其」工做因子「是可調整的,這意味着隨着硬件功能的提高,生成哈希所
花費的時間也會增長。php
2.基本使用
$user = User::findOrFail($id);
// 驗證新密碼長度...
$user->fill([
'password' => Hash::make($request->newPassword)
])->save();前端
此外,還可使用全局的幫助函數bcrypt:
bcrypt('plain-text')算法
3.驗證哈希密碼
check 方法容許你驗證給定原生字符串和給定哈希是否相等,然而,若是你在使用Laravel 自帶的AuthController (詳見用戶認證一節),就不須要再直接使用該方法,由於自帶的認證控制器自動調用了該方法:數據庫
if (Hash::check('plain-text', $hashedPassword)) {
// 密碼匹配...
}json
1.app_path() app_path 函數返回app 目錄的絕對路徑 $path = app_path(); 你還可使用app_path 函數爲相對於app 目錄的給定文件生成絕對路徑: $path = app_path('Http/Controllers/Controller.php'); 2.base_path() base_path 函數返回項目根目錄的絕對路徑: $path = base_path(); 你還可使用base_path 函數爲相對於應用目錄的給定文件生成絕對路徑: $path = base_path('vendor/bin'); 3.config_path() config_path 函數返回應用配置目錄的絕對路徑 4.database_path() database_path 函數返回應用數據庫目錄的絕對路徑 5.public_path() public_path 函數返回public 目錄的絕對路徑 6.storage_path() storage_path 函數返回storage 目錄的絕對路徑 $path = storage_path(); 還可使用storage_path 函數生成相對於storage 目錄的給定文件的絕對路徑: $path = storage_path('app/file.txt');
1.action() action 函數爲給定控制器動做生成URL ,你不須要傳遞完整的命名空間到該控制器,傳遞相對於命名空間App\Http\Controllers 的類名便可: $url = action('HomeController@getIndex'); 若是該方法接收路由參數,你能夠將其做爲第二個參數傳遞進來: $url = action('UserController@profile', ['id' => 1]); 2.asset() 使用當前請求的scheme(HTTP 或 HTTPS) 爲前端資源生成一個 URL: $url = asset('img/photo.jpg'); 3.secure_asset() 使用HTTPS 爲前端資源生成一個 URL: echo secure_asset('foo/bar.zip', $title, $attributes = []); 4.route() route 函數爲給定命名路由生成一個URL : $url = route('routeName'); 若是該路由接收參數,你能夠將其做爲第二個參數傳遞進來: $url = route('routeName', ['id' => 1]); 5.url() url 函數爲給定路徑生成絕對路徑: echo url('user/profile'); echo url('user/profile', [1]);
1.auth() auth 函數返回一個認證器實例,爲方便起見你能夠用其取代Auth 門面: $user = auth()->user(); 2.back() back 函數生成重定向響應到用戶前一個位置: return back(); 3.bcrypt() bcrypt 函數使用Bcrypt 對給定值進行哈希,你能夠用其替代Hash 門面: $password = bcrypt('my-secret-password'); 4.config() config 函數獲取配置變量的值,配置值能夠經過使用」.」號訪問,包含文件名以及你想要訪問的選項。若是配置選項不存在的話默認值將會被指定並返回: $value = config('app.timezone');$value = config('app.timezone', $default); 幫助函數config 還能夠用於在運行時經過傳遞鍵值對數組設置配置變量值: config(['app.debug' => true]); 5.csrf_field() csrf_field 函數生成一個包含CSRF 令牌值的HTML 隱藏域,例如,使用Blade 語法: {!! csrf_field() !!} 6.csrf_token() csrf_token 函數獲取當前CSRF 令牌的值: $token = csrf_token(); 7.env() env 函數獲取環境變量值或返回默認值: $env = env('APP_ENV'); // Return a default value if the variable doesn't exist... $env = env('APP_ENV', 'production'); 8.dd 函數輸出給定變量值並終止腳本執行: dd($value); 9.elixir() elixir 函數獲取帶版本號的Elixir文件路徑: 10.event() event 函數分發給定事件到對應監聽器: event(new UserRegistered($user)); 11.factory() factory 函數爲給定類、名稱和數量建立模型工廠構建器,可用於測試或數據填充: $user = factory('App\User')->make(); 12.method_field() method_field 函數生成包含HTTP 請求方法的HTML 隱藏域,例如: <form method="POST"> {!! method_field('delete') !!}</form> 13.old() old 函數獲取一次性存放在session 中的值: $value = old('value'); 14.redirect() redirect 函數返回重定向器實例進行重定向: return redirect('/home'); 15.response() response 函數建立一個響應實例或者獲取響應工廠實例: return response('Hello World', 200, $headers);return response()->json(['foo' => 'bar'], 200, $headers) 16.value() value 函數返回給定的值,然而,若是你傳遞一個閉包到該函數,該閉包將會被執行並返回執行結果: $value = value(function() { return 'bar'; }); 17.view() view 函數獲取一個視圖實例: return view('auth.login'); 18.with() with 函數返回給定的值,該函數在方法鏈中特別有用,別的地方就沒什麼用了: $value = with(new Foo)->work();
默認狀況下,當前頁經過 HTTP 請求查詢字符串參數?page 的值判斷。固然,該值由 Laravel 自動檢測,而後自動插入分頁器生成的連接中;simplePaginate僅有上一頁和下一頁連接,paginate// 上一頁,下一頁和數字頁碼 1.使用DB門面 $users = DB::table('users')->simplePaginate(15); //僅有上一頁和下一頁連接 $users = DB::table('users')->paginate(15); // 上一頁,下一頁和數字頁碼 2.模型 $users = App\User::paginate(15); $users = User::where('votes', '>', 100)->paginate(15); $users = User::where('votes', '>', 100)->simplePaginate(15); 3.手動建立分頁器 使用LengthAwarePaginator LengthAwarePaginator 接收參數和Paginator 幾乎同樣,只是,它要求傳入結果集的總數。 換句話說, Paginator 對應simplePaginate 方法,而LengthAwarePaginator 對應paginate 方法。 當手動建立分頁器實例的時候,應該手動對傳遞到分頁器的結果集進行「切片」,若是你不肯定怎麼作,查看 PHP 函數 array_slice。 4.在視圖中顯示分頁結果 <div class="container"> @foreach ($users as $user) {{ $user->name }} @endforeach </div> {!! $users->render() !!} render 方法將會將結果集中的其它頁面連接渲染出來。每一個連接已經包含了?page 查詢字符串變量。記住, r ender 方法生成的 HTML 兼容 Bootstrap CSS 框架。 5.自定義分頁參數 a.路由或控制器中 $users = App\User::paginate(15); $users->setPath('custom/url'); b.模板中 {!! $users->appends(['sort' => 'votes'])->render() !!} 添加一個命名錨記 {!! $users->fragment('foo')->render() !!} 6.轉爲json return App\User::paginate();