13.挖掘更深

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(key,value,minutes); Cache::forever():永久记录此村换数据。Cache::forever(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);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,166评论 0 9
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,084评论 1 32
  • 今天看到一位朋友写的mysql笔记总结,觉得写的很详细很用心,这里转载一下,供大家参考下,也希望大家能关注他原文地...
    信仰与初衷阅读 4,723评论 0 30
  • 一、MemCache简介 session MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存...
    李伟铭MIng阅读 3,781评论 2 13
  • 转 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    吕品㗊阅读 9,696评论 0 44