1.辅助函数
1.1数组
array_except():排除指定键值数据,回传其他键值数据。$input = array_except($input, ['detail']);
array_forget():移除数组指定键值数据。可以使用“.”*(点号)指定数组阶层的数据。array_forget($input, ['detail.user.name']);
array_get():取得数组指定键值数据,可设置默认值。array_get('detail.user.name', '张三');
array_has():数组是否有指定键值。array_has('detail.user.name');
array_only():限制取得指定键值数据。但无法使用“.”来指定阶层数据。array_only(‘name’);
array_pluck():整理数组清单指定键值数据。在数组清单中,若有相同的键值,要同时将这些键值都取出来使用。array_pluck('detail.name');
1.2字符串
e():转义html字符,e()方法是执行htmlspecialchars()方法跳脱字符串。echo e('<html>abc</html>');
str_limit():限制字符串的显示长度,超出时显示...。str_limit($string,10);
str_contrains():字符串中是否包含指定字符。str_contrains($string,'a');
1.3应用程序路径
base_path():根文件夹。base_path();base_path('app');
config_path():配置文件路径。config_path();config_path('app.php');
database_path():数据库路径。database_path();database_path('migrations');
public_path():公开文件夹路径。public_path();public_path('assets/js/jquery.js');
storage_path():存储文件路径。storage_path();storage_path('logs/laravel.log');
1.4其他
config():取得配置文件设置值。config('app.timezone',$default);
dump():输出变量数据。
dd():输出变量数据并中断程序执行。
now():目前时间的对象。Illuminate\Support\Carbon对象。
collect():将数组转换成Collection数据集合对象。
2.Collection数据集合对象
all():取得数据集数组数据。
toArray():数据集合转换为数据。与all()输出结果相同。
toJson():转换成json字符串。
values():取得数据集所有数值数据。
keys():取得数据值所有键值数据。
contains():判断是否有此键值数据。若只有传入一个指定参数,数据集的数据必须为第一阶层的数值。$collection->contains(['a'=>1,'b'=>2]);
若传入两个参数,可以指定第二阶层的数值数据。
count():计算数据集数量。
except():排除指定键值数据。$collection->except('detail.name');
only():仅能取得第一阶层键值数据。
filter():过滤指定条件数据。
$c->filter(function($value,$key){
return $value > 2;
});
first():取得第一条数据。
last():取得最后一条数据。
flip():翻转键值与数值数据。
forget():删除指定键值数据,仅能删除第一阶层键值数据。
forPage():分页数据。forPage($page,$row_per_page);//页码,每页数据数。
get():仅能取得第一阶层数据,第二个参数可设置默认值。
implode():合并指定键值数值数据为字符串。implode('name',',');
map():运算所有键值数据。
$c->map(function($value,$key){
return $value * 2;
});
pluck():整理指定键值数据为新数据集。pluck('detail');
pop():取出最后一个元素数据。
shift():取出第一个元素数据。
prepend():加入数据到数据集第一个位置。prepend('张三','name');//name:张三
pull():取得指定键值数据,并删除该键值数据。
random():随机取得元素数据。
reverse():翻转数据集数据顺序。
search():查找指定数据,返回index。从0开始。
shuffle():随机排序数据集数据。
sort():排序数据集数据。
sortBy():排序数据集指定键值数据。sortBy('detalis.age');
unique():取得唯一数值数据集(去重)。
whereIn():取得指定条件数值数据.whereIn('price',[150,200]);
whereNotIn():排除指定条件数值数据.whereNotIn('price',[150,200]);
3.加解密
可以使用encrypt()及decrypt()方法做加解密。加解密的数据会参照confi/app.php文件中设置的key当做加解密的键值。
4.错误日志
4.1错误层级
debug、info、notice、warning、error、critical、alert、emergency这8种层级。Log::error($message);
4.2错误记录方式
错误信息将默认被记录到storage/logs/laravel.log。
single-单一文件、daily-每天一个文件、syslog-系统错误信息、errorlog-将错误信息显示在终端机上。设置的方式将记录到config/app.php
若错误方式为daily,可在配置文件中设置log_max_files显示存储天数,超过天数将被删除。
5.HTTP异常错误代码
可用abort()显示http错误代码,中断用户的请求并看到固定的错误页面。除了预设的404页面外,可以自定义404页面,只需将页面放到resources/views/errors/404.blade.php.
6.artisan命令
6.1查询环境变量 php artisan env
6.2进入维护模式,将会中断所有发送的任何请求。
php artisan down
6.3关闭维护模式
php artisan up
6.4互动式命令行
php artisan tinker,可输入代码对数据进行操作。
$user = \App\Shop\Entity\User::find(1);
7.缓存
7.1缓存配置文件放在config/cache.php文件中。支持apc array database file memcached redis 这6种缓存记录方式。
7.2记录缓存数据
Cache::put(): 记录缓存数据,并制定缓存键值及缓存时间。Cache::put(value,key,$value);
7.3判断缓存是否存在
Cache::has($key);
7.4取得缓存数据
Cache::get(''key);取得缓存数据。
Cache::pull(''key);取得缓存数据,并删除。
7.5清空缓存数据
Cache::forget('key');清除指定缓存。
Cache::flush();清除所有缓存。
7.6 artisan清除缓存的命令
php artisan cache:clear 清除所有缓存。
php artisan cache:forget key 清除指定缓存。
8.存储(Storage)
文件的操作配置文件放在config/filesystems.php中。其中预设支持local、ftp、s3、rackspace这4种文件操作。local为本地端的文件操作服务,本地端文件存储的路径在storage文件夹下,ftp为FTP文件的存取,s3为Amazon Simple Storage Service 的文件存取服务,rackspace为云端的文件数据代管服务。
8.1存储数据到指定文件路径
put方法使用预设的存储服务,直接将数据写入指定文件。disk()->put()方法,先设置存储服务,在进行数据写入。
use Storage;
$file_content = '文件内容';
Storage::put('file.text',$file_content );
Storage::disk('local')->put('file.text',$file_content )
8.2存储文件到指定文件路径
使用putFile()方法存储文件到指定文件路径
use Storage;
Storage::putFile('avatars',$request()->file('photo'));
8.3复制、移动文件
use Storage;
Storage::copy('old','new')
Storage::move('old','new');
8.4删除文件
use Storage;
Storage::delete('file.jpg');
Storage::delete(['file1.jpg','file2.jpg']);
8.5取得文件夹
directories()方法列出文件夹下所有文件夹,预设存储位置为storage/app,所有会列出storage/app/文件夹下所有文件夹。allDirectories()方法 递归查找所有子文件夹(目录及其子目录下的所有文件夹)
use Storage;
//指定路径下所有文件夹
Storage::directories($directory);
//递归查找所有子文件夹(目录及其子目录下的所有文件夹)
Storage::allDirectories($directory);
8.6 文件夹管理
makeDirectory()方法建立文件夹,deleteDirectory()方法删除指定文件夹
use Storage;
Storage::makeDirectory($directory);
Storage::deleteDirectory($directory);