[TOC]
## Helper
注:數組和字符串函數將在 5.9 全面廢棄,推薦使用 Arr 和 Str Facade
### 數組 & 對象
```
// 如果給定的鍵不存在于該數組,Arr::add 函數將給定的鍵值對加到數組中
Arr::add(['name' => 'Desk'], 'price', 100);
// >>> ['name' => 'Desk', 'price' => 100]
// 將數組的每一個數組折成單一數組
Arr::collapse([[1, 2, 3], [4, 5, 6]]);
// >>> [1, 2, 3, 4, 5, 6]
// 函數返回兩個數組,一個包含原本數組的鍵,另一個包含原本數組的值
Arr::divide(['key1' => 'val1', 'key2' =>'val2'])
// >>> [["key1","key2"],["val1","val2"]]
// 把多維數組扁平化成一維數組,并用「點」式語法表示深度
Arr::dot($array);
// 從數組移除給定的鍵值對
Arr::except($array, array('key'));
// 返回數組中第一個通過為真測試的元素
Arr::first($array, function($key, $value){}, $default);
// 將多維數組扁平化成一維
// ['Joe', 'PHP', 'Ruby'];
Arr::flatten(['name' => 'Joe', 'languages' => ['PHP', 'Ruby']]);
// 以「點」式語法從深度嵌套數組移除給定的鍵值對
Arr::forget($array, 'foo');
Arr::forget($array, 'foo.bar');
// 使用「點」式語法從深度嵌套數組取回給定的值
Arr::get($array, 'foo', 'default');
Arr::get($array, 'foo.bar', 'default');
// 使用「點」式語法檢查給定的項目是否存在于數組中
Arr::has($array, 'products.desk');
// 從數組返回給定的鍵值對
Arr::only($array, array('key'));
// 從數組拉出一列給定的鍵值對
Arr::pluck($array, 'key');
// 從數組移除并返回給定的鍵值對
Arr::pull($array, 'key');
// 使用「點」式語法在深度嵌套數組中寫入值
Arr::set($array, 'key', 'value');
Arr::set($array, 'key.subkey', 'value');
// 借由給定閉包結果排序數組
Arr::sort($array, function(){});
// 使用 sort 函數遞歸排序數組
Arr::sortRecursive();
// 使用給定的閉包過濾數組
Arr::where();
// 數組"洗牌"
Arr::shuffle($array,'I-AM-GROOT');
// 數組包裹(如果不是數組,就變成數組,如果是空的,返回[],否則返回原數據)
Arr::wrap($array);
// 返回給定數組的第一個元素
head($array);
// 返回給定數組的最后一個元素
last($array);
```
### 路徑
```
// 取得 app 文件夾的完整路徑
app_path();
// 取得項目根目錄的完整路徑
base_path();
// 取得應用配置目錄的完整路徑
config_path();
// 取得應用數據庫目錄的完整路徑
database_path();
// 取得加上版本號的 Elixir 文件路徑
elixir();
// 取得 public 目錄的完整路徑
public_path();
// 取得 storage 目錄的完整路徑
storage_path();
```
### 字符串
```
// 將 UTF-8 的值直譯為 ASCII 類型的值
Str::ascii($value)
// 將給定的字符串轉換成 駝峰式命名
Str::camel($value);
// 返回不包含命名空間的類名稱
class_basename($class);
class_basename($object);
// 對給定字符串運行 htmlentities
e('<html>');
// 判斷字符串開頭是否為給定內容
Str::startsWith('Foo bar.', 'Foo');
// 判斷給定字符串結尾是否為指定內容
Str::endsWith('Foo bar.', 'bar.');
// 將給定的字符串轉換成 蛇形命名
Str::snake('fooBar');
// 將給定字符串轉換成「首字大寫命名」: FooBar
Str::studly('foo_bar');
// 根據你的本地化文件翻譯給定的語句
trans('foo.bar');
// 根據后綴變化翻譯給定的語句
trans_choice('foo.bar', $count);
Str::contains($haystack, $needle)
Str::finish($value, $cap)
Str::is($pattern, $value)
Str::length($value)
Str::limit($value, $limit = 100, $end = '...')
Str::lower($value)
Str::words($value, $words = 100, $end = '...')
Str::plural($value, $count = 2)
// 生成更加真實的 "隨機" 字母數字字符串.
Str::random($length = 16)
// 生成一個 "隨機" 字母數字字符串.
Str::quickRandom($length = 16)
Str::upper($value)
Str::title($value)
Str::singular($value)
Str::slug($title, $separator = '-')
Str::snake($value, $delimiter = '_')
Str::macro($name, $macro)
```
### URLs and Links
```
// 產生給定控制器行為網址
action('FooController@method', $parameters);
// 根據目前請求的協定(HTTP 或 HTTPS)產生資源文件網址
asset('img/photo.jpg', $title, $attributes);
// 根據 HTTPS 產生資源文件網址
secure_asset('img/photo.jpg', $title, $attributes);
// 產生給定路由名稱網址
route($route, $parameters, $absolute = true);
// 產生給定路徑的完整網址
url('path', $parameters = array(), $secure = null);
```
### 其他
```
// 返回一個認證器實例。你可以使用它取代 Auth facade
auth()->user();
// 產生一個重定向回應讓用戶回到之前的位置
back();
// 使用 Bcrypt 哈希給定的數值。你可以使用它替代 Hash facade
bcrypt('my-secret-password');
// 從給定的項目產生集合實例
collect(['taylor', 'abigail']);
// 取得設置選項的設置值
config('app.timezone', $default);
// 產生包含 CSRF 令牌內容的 HTML 表單隱藏字段
{!! csrf_field() !!}
// 5.7+用這個
@csrf
// 取得當前 CSRF 令牌的內容
$token = csrf_token();
// 輸出給定變量并結束腳本運行
dd($value);
// var_dump縮寫(如果用dump-server,var_dump可能無效)
dump($value);
// 取得環境變量值或返回默認值
$env = env('APP_ENV');
$env = env('APP_ENV', 'production');
// 配送給定事件到所屬的偵聽器
event(new UserRegistered($user));
// 根據給定類、名稱以及總數產生模型工廠建構器
$user = factory(App\User::class)->make();
// 產生擬造 HTTP 表單動作內容的 HTML 表單隱藏字段
{!! method_field('delete') !!}
// 5.7+
@method('delete')
// 取得快閃到 session 的舊有輸入數值
$value = old('value');
$value = old('value', 'default');
// 返回重定向器實例以進行 重定向
return redirect('/home');
// 取得目前的請求實例或輸入的項目
$value = request('key', $default = null)
// 創建一個回應實例或獲取一個回應工廠實例
return response('Hello World', 200, $headers);
// 可被用于取得或設置單一 session 內容
$value = session('key');
// 在沒有傳遞參數時,將返回 session 實例
$value = session()->get('key');
session()->put('key', $value);
// 返回給定數值
value(function(){ return 'bar'; });
// 取得視圖 實例
return view('auth.login');
// 返回給定的數值
$value = with(new Foo)->work();
```
- 入門指南
- 安裝
- 部署
- 基礎功能
- 路由
- 中間件
- CSRF 保護
- 控制器
- 請求
- 響應
- 視圖
- URL
- Session
- 表單驗證
- 錯誤
- 日志
- 前端開發
- Blade 模板
- 本地化
- 腳手架
- 編譯資源 Mix
- 安全相關
- 用戶認證
- API 認證
- 綜合話題
- 命令行
- 廣播
- 緩存
- 集合
- 事件
- 文件存儲
- 輔助函數
- 郵件發送
- 消息通知
- 擴展包開發
- 隊列
- 任務調度
- 數據庫
- 快速入門
- 查詢構造器
- 分頁
- 數據庫遷移
- 數據填充
- Redis
- Eloquent ORM
- 快速入門
- 速查表
- Artisan
- Auth
- Blade
- Cache
- Collection
- Composer
- Config
- Container
- Cookie
- DB
- Environment
- Event
- File
- Helper
- Input
- Lang
- Log
- Model
- Pagination
- Queue
- Redirect
- Request
- Response
- Route
- SSH
- Schema
- Security
- Session
- Storage
- String
- URL
- UnitTest
- Validation
- View