//配置文件类
use Illuminate\Support\Facades\Config;
 
3://获取用户提交的数据
Request::get();
Request::post();
//所有输入,表单文件什么的所有的数据
Request::all();
//query和get一样,query只接收url地址栏的参数,它的选择范围更小
Request::query();
//判断值是否为空
Request::has($key);
//判断键时候存在
Request::exists($key);
//只接收这俩值
Request::only('key1','key2');
//接收除了这俩以外的值
Request::except('key1','key2');
//当前的域名。http://127.0.0.1:8885/api/privilegeList
Request::url();
//http://127.0.0.1:8885/api/privilegeList?a=1
Request::fullurl();
4://接收数据并把数据存到session
Request::flash();
//调用上面的参数.不带参数就显示所有的
Request::old($key);
//只存某个值
Request::flashOnly();
//除了某个值,其他都存
Request::flashExcept();
5://接收所有的文件,加$key接收单个文件
Request::file();
Request::hasFile();//true/false
//获取文件的大小
Request::file($key)->getSize();
//客户端时文件的名称例如123.jpg
Request::file($key)->getClientOriginalName(); //123
Request::file($key)->getClientOriginalExtension();//jpg
6://session
Session::put($key,$val);
//获取所有的session值
Session::all();
//删除session
Session::forget($key);
//拿出来一次就删除
Session::pull($key);
7://数据的验证
$rq = Request::all();
$validator = Validator::make($rq,[
    'usename'=>'required | min:4 |max:16|unique:nf_pivilege',//必须,最小长度4,最大16位,在nf_privilege表唯一存在
//            'usename'=>'required | between:4,16',//必须,最小长度4,最大16位
    'phone'=>'numeric | required',//必须数字,必须有值
    'password'=>'required|between:6,255'
]);
if($validator->fails()){
    return $validator->errors();
}
return '验证成功';
8://哈希(Hash)
$password = Request::get('password');
//hash加密
$hashedpassword = Hash::make($password);
//比对上次我们存的hash是否正确
if(Hash::check($key1,$value)){
}
9://函数的应用
$array = [1,2,3];
//返回第一个
$data = head($array);//1
//只返回某一部分
$array = [
    'name'=>123,
    'age'=>23,
    'ab'=>43
];
$data = array_only($array, array('name','age'));//123,23
//按条件返回
$array = [
    'name'=>123,
    'age'=>23,
    'ab'=>43
];
$data = array_first($array,function($key,$value){
    return $value>30;
});//43,123
//按条件返回
$array = [
    'name'=>123,
    'age'=>23,
    'ab'=>43
];
$data = array_add($array,'job','work');//43,123
//返回 
$array = [
    'name'=>123,
    'age'=>23,
    'ab'=>43,
    'job'=>'work'
];
array_where($array, $callback);
array_flatten($array);
array_fill($start_index, $num, $data);
last($array);
10://路径的帮助函数
app_path();//项目绝对路径
config_path();//配置文件的路径
public_path();//public路径
storage_path();//过程文件的储存目录
11://字符串的帮助函数
str_plural($value);//apple -> apples.把单数变成复数
starts_with($value, 'a');//判断字符串是否以a开头
ends_with($haystack, 'b');//是否以b结束
camel_case($value);//转位驼峰命名法 hello_world -> helloWorld
class_basename($class);//只取最后的命名空间 App\test->test
str_limit($value, 3);//abcderf->abc....
str_is('ab*', $value);//$value是否以ab开头
 
//modules------------------------------------------------------
1://基础模型类
use Illuminate\Database\Eloquent\Model;
//数据库类
use Illuminate\Support\Facades\DB;
2属性类型
//表名
protected $table = "nf_privilege";
//允许被重写的字段,这个一般不用写,只需要写下面的这个就行了
protected $fillable = ['nf_name'];
//不允许被重写的字段
protected $guarded = ['id'];
//主键id
protected $primary_key = 'id';
//需要隐藏的字段
protected $hidden = ['nf_controller'];
//不检查时间
public $timestamps = false;
public function getAll()
{
//        $data = DB::select('select * from nf_privilege');
      //取出说有的数据
//        $data = $this->all()/get()一样;
//        
    //按照主键id找数据
//        $data = $this->find(1);
    $this->where('id','>=',3)->get();
    return $data;
}
public function create()
{
    //添加1
//        $this->nf_name = '123';
//        $this->nf_module = '234';
//        $this->nf_parentId =1;
//        $this->save();
    //添加2
    $data = array('nf_module'=>'12','nf_name'=>'234');
    $this->fill($data);
    $this->save();
}
public function update()
{
    //找到这条数据,更新单条
    $res = $this->find(5);
    $res->nf_name = '654';
    $res->nf_module = '7890';
    $res->save();
    //更新多条
    $ress = $this->where('nf_parentId','>',3);
    ///-----
//        $ress->nf_name = '0987';
//        $ress->save();
    //第二种
    $ress->update(array('nf_name'=>'32'));
}
public function del()
{
    $res = $this->find(4);
    $res->delete();
}