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;

}

原文地址:https://www.cnblogs.com/simadongyang/p/10232264.html