laravel 輔助函數


方法列表

array_add 如果給定的鍵不存在數組中,那么array_add函數將會把給定的鍵值對添加到數組中

 array_add(['name'=》‘desk’]);

array_collapse 函數將多個數組合並為一個數組

array_collapse([1,2,3],[4,5,6]);

array_divide 函數返回一個二維數組,一個值包含原始數組的鍵,另一個值包含原始數組的鍵

array_divide(['name'=>'desk']);

array_dot() 將多維數組中所有的鍵平鋪到一維數組中,新數組使用【.】符號表示層級包含關系

array_dot(['a'=>['b'=>'123']]);

array_except() 從數組中刪除給定的鍵值對

array_except($array,['price']);

array_first() 函數返回數組中通過指定測試的第一個元素

array_first($array,function($value,$key){

  return $value => 150;

});

將默認值作為第三個參數傳遞給該方法,如果數組中沒有值通過測試,則返回默認值

array_first($array,$callback,$default);

array_flatten() 函數將多維數組中數組的值取出平鋪為一維數組

array_flatten($array);

array_forget() 使用點符號從深度嵌套的數組中刪除給定的鍵值對

array_forget($array,'products.desc');

array_get 函數使用點符號從深度嵌套的數組中根據指定鍵檢索值

array_get($array,'product,desc.price');

array_get 函數也接受一個默認值,如果沒有找到特定的鍵,將返回默認值

array_get($array,'prducts.desk.discount',0);

array_has 使用點符號來查找數組中是否指定的一個或多個鍵

array_has('$array,'prodct.name'');

array_last() 返回數組中通過指定測試的最后一個元素

array_last($array,function($value,$key){

  return $values >= 150;

});

將默認值作為第三個參數傳遞給該方法,如果沒有值通過指定測試,則返回默認值

array_last($array,$callback,$default);

array_only 只從指定數組中返回指定的鍵值對

array_only($array,[’name‘,'price']);

array_pluck 從數組中檢索給定鍵的所有值

array_pluck($array,'developer.name');

你也可以指定獲取的結果的鍵

array_pluck($array,'developer.name','developer.id');

array_prepend 將一個值插入到數組的開始位置

array_prepend($array,'zero');

可以指定你插入值的鍵

array_prepend($array,'desk','name');

array_pull 從數組中返回指定鍵的值並刪除此鍵值對

array_pull($array,'name');

默認值可以作為第三個參數傳遞給該方法,如果鍵不存在,則返回給值;

array_pull($array,$key,$default);

array_random 從數組中隨機返回一個值

array_random($array);

你也可以將返回值的數量作為可選的第二個參數傳遞給該方法,請注意,提供這個參數會返回一個數組,即便是你只需要一項

array_random($array,2);

array_set() 函數使用 . 符號在多維數組中設置指定鍵的值

array_set($array,'products.desc.price',200);

array_sort() 函數根據數組的值對數組進行排序

array_sort($array);

你也可以根據給定閉包返回的結果對數組進行排序

array_sort($array,function($value){

  return $value['name'];

});

array_sort_recursive() 函數使用 sort 函數對數組進行遞歸排序

array_sort_recursive($array);

array_where 使用給定閉包返回的結果過濾數組

array_where($array,,function($value,$key){

  return is_string($value);

});

array_wrap 將給定的值變為一個數組,如果給定的值已經是數組,則不改變

array_wrap($string);

date_fill 函數使用 . 符號在多維數組或對象內設置缺省值

date_fill($data,'products.desk.price',200);

這個函數還接收 * 作為通配符,相應的填充目標

data_fill($data,'productes.*price',200);

date_get() 函數使用 . 符號從多維數組或對象中檢索值

data_get($data,'products.desc.price');

date_get 函數也可以接收一個默認值,如果找不到指定的鍵,則返回默認值

data_get($data,'products,desc.discount',0);

data-set 使用 . 符號在多維數組或對象中設置一個值;

data_set($data,'prodects.desk.price',200);

該函數也可以接收通配符,相應的在指定鍵上設置值;

data_set($data,'products.*。price',200);

默認情況下,所有現有值都會被覆蓋,如果你只希望設置不存在的值,你可以選擇false 作為第四個參數傳遞給該方法

data_set($data,'products.desc.price',200,false);

hand 返回給定數組中的第一個元素

head($array);

last(); 函數返回給定數組中的最后一個元素

last($array);

路徑 app_path()

app_path 函數返回 app 目錄的完整路徑,你也可以使用app_path函數來設置應用程序,app目錄的完整路徑

app_path()

base_path() 函數返回項目根目錄的完整路徑,你也可以使用base_path 函數設置項目根目錄的完整路徑

base_path('vendor/bin');

config_path 函數返回 config 目錄的完整路徑,你也可以使用config_path 函數設置應用程序 config 目錄中給定文件的完整路徑

database_path 函數返回 database 目錄的完整路徑,你也可以使用 database_path 函數來設置 database目錄中給定文件的完整路徑

mix 函數返回 版本化Mix文件的路徑

$path = mix(‘css/app.css’);

public_path() 函數返回 public 目錄的完整路徑,你也可以使用 public_path 函數來生成 public 目錄中給定文件的完整路徑

$path = public_path();

$path = public_path('css/app.css');

resource_path  函數返回 resources 目錄的完整路徑,你也可以使用,resource_path 函數來生成資源文件中給定文件的完整路徑

$path = resource_path()

storage_path 函數返回 storage 目錄的完整路徑,你也可以使用storage_path 函數來設置存儲目錄下指定文件的完整路徑

字符串

__()

__ 函數使用你的本地化文件來翻譯給定的翻譯字符串或翻譯鍵

camel_case 函數將給定字符串 短橫式轉化為 駝峰式

camel_case('foo_bar');

class_basename 函數返回被刪除了命名空間的指定類的類名

class_basename(...);

e()  htmlspeaicalchars()

ends_with 判斷指定的字符串是否以給定的值結尾

ends_with('This is my name','name');

kebab_case 函數將給定的 駝峰式字符串轉化為 短橫式字符串

kebab_case('fooBar');

preg_replace_array() 函數使用數組順序替換字符串中的給定模式

str_after 函數返回在字符床中指定值之后的所有內容

str_after('This is my name','This is');

str_before() 函數返回在字符串中指定值之前的所有內容

str_before('this is my name','my name’);

str_contains() 函數判斷給定的字符串是否包含給定的值 

str_contains('this is my name','my');

你也可以傳遞一個數組形式的值來判斷字符串中是否包含任何值

str_contains('this is my name',['my','foo']);

str_finish 函數將給定的字符串以給定的值結尾返回

str_finish('this/string/','/');

str_is()

str_is函數判斷給定的字符串是否匹配給定的模式,* 可以用來表示通配符

 

str_limit 函數按給定的長度截斷給定的字符串

str_limit('this is my name',‘2’);

你也可以傳遞第三個參數來改變將被追加到最后的字符串

str_limit('this is my name ',2,' (...)');

Str::orderedUuid 此方法高效生成一個可存儲在索引數據列中的 UUID

st_plural 函數將字符串轉換為復數形式,該函數目前僅支持英文

str_random 函數生成一個指定長度的隨機字符串,同 random_bytes

str_replace_array() 函數使用數組順序替換字符串中的給定值

str_replace_array('?',['8:30','9:00'],$string);

str_replace_first 函數替換字符串中給定值的第一個匹配項:

str_replace_last 函數替換字符串中最后一次出現的給定值

str_singular 函數將字符串轉換為單數形式,該函數目前僅支持英文

str_slug() 函數將給定的字符串生成一個url 

str_start 函數將給定值添加到給定字符串的開始位置

studly_case 函數將給定的字符串轉換為變種駝峰命名

title_case 將給定的字符串轉換為 首字母大寫

trans 使用你的 本地文件來翻譯給定的翻譯字符串貨翻譯鍵

Str::uuid 生成一個UUID

action 函數為指定的控制器動作生成一個url ,你不需要傳遞完整的控制器命名空間,只需要傳遞相對於 。。。 

如果該方法接收路由參數,則可以將他們作為方法的第二個參數傳遞

asset 函數使用當前請求的協議為資源文件生成url

secure_asset 使用https 協議為資源文件生成url

route 為給定的命名路由生成一個url

如果路由接受參數,則可以將他們作為方法的第二個參數傳遞

默認情況下,route 函數生成的是絕對url,如果你想生成一個相對url,你可以傳遞false,作為第三個參數

secure_url 為給定的路由生成一個標准等https url

url 函數生成給定路徑的標准url

如果沒有提供路徑

其他  abort 函數拋出 異常處理 程序呈現的http異常

abort_if 如果給定的布爾表達式計算結果為 true abort_if函數將拋出一個http異常

和abort 方法一樣,你也可以提供異常的相應文本作為第三個參數,並提供一個自定義響應頭數據作為第四個參數

abort_unless 如果給定的布爾表達式計算結果為 false abort_unless 函數將拋出一個http異常

app 函數返回 服務容器實例

你可以傳遞一個類或接口名稱來從容器中解析它

auth 返回一個認證實例,為了方便起見,你可以使用他來替代 auth

back 函數生成一個重定向 http響應到用戶之前的位置

bcrypt 哈希 使用 bcrype對給定的值進行散列,你可以使用它替代 。。。

broadcase 函數將廣播給定的事件到它的監聽器 

blank 函數判斷給定的值是否為空

cache 可以從緩存中獲取值,如果緩存中給定的鍵不存在,將返回一個可選的默認值

你可以通過向函數添加鍵值對數組設置緩存項,與此同時,你還應該傳遞有效的分鍾數或者緩存的持續時間來設置緩存過期時間

calss_uses_recursive 函數返回一個類使用的所有traits包括他所有父類使用的traits 

collect 根據給定的值創建一個集合實例

config 函數獲取配置變量的值,可以使用點語法訪問配置的值,其中包括文件的名稱和訪問的選項,如果訪問的配置選項不存在,你可以指定

一個默認值並且返回這個默認值

你也可以在運行時通過傳遞一個鍵值對數組來設置配置變量

cookie 函數創建一個新的cookie實例

csrf_field 生成一個包含csrf令牌值的html 輸入表單字段 hidden,例如 ,使用blade

{{ csrf_field() }}

csrf_token() 函數獲取當前csrf 令牌的值

dd 函數打印輸出給定的變量並且結束腳本運行

decrypt 可以使用laravel加解密機制來解密給定的值

dispathch 將給定任務推送到laravel 任務隊列中

dispatch_now 函數立即運行給定的任務 並從其 handle 方法返回值

dump  打印給定的變量

encrypt 使用laravel 的加解密機制對給定的值進行加密

env 可以獲取環境變量的配置的值或者返回默認值

event 函數將給定的事件分派給他的監聽器

factorty 函數根據給定的類, 名稱 數量 創建一個模型工廠構建器,它可以在測試或者數據填充中使用

filled 函數判斷給定的值不為空

要使用與 filled 函數相反的功能,請看 black 文件

info 函數將信息寫入日志

logger 函數可以講一個debug級別的消息寫入到日志中

有前后關系的數組也可以傳值給數組

method_field 函數生成一個html hidden 輸入框包含表單的http動作的欺騙值,例如 

now 函數為當前時間創建一個新的 實例

old 函數檢索會話中閃存的舊輸入值

optional 函數可以接收任何參數,並且允許你訪問該對象的屬性或者調用其方法,如果給定的對象是null,屬性和方法將返回null

optional 函數也可以接收一個閉包作為 第二個參數,如果給定的第一個參數不為空,則執行閉包

policy 方法為指定的類檢索這個類的策略的實例

redirect  函數返回一個重定向http響應,或者如果沒有傳遞參數,則返回重定向實例

report 函數將會使用異常處理程序 report 方法來報告異常

request 函數返回當前獲取額請求實例或者獲取輸入項

rescue函數執行給定的閉包並且獲取在執行期間發生的任何異常,所有被捕獲的異常將會被發送到 異常處理程序的report方法

resolve 函數使用服務容器將給定的類或接口解析為其實例

response  函數可以創建響應實例或者獲取響應工廠的實例

retry 函數嘗試執行給定的回調,直到達到給定的最大嘗試次數,如果回調沒有拋出異常

則返回設置的返回值,如果毀掉拋出了異常,將會自動重新執行,如果重試超過最大嘗試次數,將會拋出異常

session 函數可以用來獲取或設置session值

tap  。。。

today 函數為當前日期創建一個新的 實例

throw_if 如果給定的布爾表達式的結果為true,則throw_if  函數hi拋出指定的異常

throw_unless 如果給定的布爾表達式的結果為false 則 throw_unless 函數會拋出指定的異常

trait_uses_recursive 函數返回一個類使用的所有trait

transform  函數如果傳遞的參數不為空,

value view 獲取一個視圖實例

with

運行 select 查詢

可以使用 DB 中的 select方法來運行基礎的查詢語句

DB::select('select * from users where active = ?',[1]);

return view('user.index',['users'=>$users]);

傳遞給select 方法的第一個參數就是一個原生的sql查詢,而第二個參數是需要綁定到查詢中的參數值,通常,這些值

用於約束 where語句。參數綁定用於防止sql注入

select 方法將始終返回一個數組,數組中的每個結果都是一個 StdClass 對象,可以像下面這樣訪問結果值:

使用命名綁定

除了使用 ? 表示參數綁定外,你也可以使用命名綁定來執行一個查詢

$results = DB::select('select * from users where id = :=id',['id'=>1]);

運行插入語句

可以使用 DB 的insert 方法來執行 insert 語句,與select一樣,該方法將原生sql查詢作為其第一個參數,並將綁定數據作為第二個參數

DB::insert('insert into users (id,name) vlaues(?,?)',[1,'Dayle']);

運行更新語句 

update 方法用於更新數據庫中現有的記錄,該方法返回受該語句影響的行數

$affected = DB::update('update users set votes = 100 where name =?',['john']);

運行刪除語句

delete 方法用於從數據庫中刪除記錄,與update一樣,返回受該語句影響的行數

$deleted = DB::delete('delete from users');

運行普通語句

有些數據庫語句不會有任何返回值,對於這些語句,你可以使用DB的statement方法來運行

DB::statement('drop table users');

從一個數據表中獲取所有行

可以從DB中使用table方法來開始查詢,該table方法為給定的表返回一個查詢構造實例,允許你在查詢上鏈式調用

更多的約束,最后使用get方法獲取結果

$users = DB::table('users')->get();

view('user.index',['users'=>$users]);

該get方法返回一個包含 collection的結果,其中每個結果都是 stdclass對象的一個實例,你可以訪問字段作為對象的屬性來訪問每列的值

foreach($users as $user)

{

  echo $user->name;

}

從數據表中獲取單行或單列

如果你只需要從數據表中獲取一行數據,你可以使用first方法。該方法返回一個 stdclass對象。

$user = DB::table('users')->where('name','john')->first();

echo $user->name;

如果你甚至不需要整行數據,則可以使用value方法從記錄中獲取某個值,該方法將直接返回該字段的值;

$email = DB::table('users')->where('name','john')->value('email');

獲取一列的值

如果你想獲取包含單列值的集合,則可以使用pluck方法,在下面的例子中,我們將獲取角色表中標題的集合

$titles = DB::table('roles')->pluck('title');

foreach($titles as $title){

  echo $title;

}

你還可以在返回的集合中指定字段的自定義鍵值:

$roles = DB::table('roles')->pluck('title','name');

foreach($roles as $name => $title){

  echo $title;

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM