8、建表 Laravel在数据库建表上有自己独立内置的结构,可以完全不用借助原生SQL语句或者SQLyogEnt、Navicat这样的建表工具进行数据库的建立,增删改查和数据交互。...无须担心,从github中pull下项目后在数据表里直接修改,只需要用: php artisan migrate:refresh 9、ORM 在介绍建表时已经使用了创建模型的命令: php artisan...make:model XXX; Laravel里模型是对面向对象开发思想最好的诠释,让对象帮我们完成需求。...: $request->session()->get(‘key’);//获取session里的某个键名 $request->session()->set(‘key’,’default’);//设定一个默认值...,当指定键名不存在便返回默认值 $request->session()->all();//返回所有数据 session(‘k’=>$v);//写入session保存数据 以及闪存数据session()-
8、建表 Laravel在数据库建表上有自己独立内置的结构,可以完全不用借助原生SQL语句或者SQLyogEnt、Navicat这样的建表工具进行数据库的建立,增删改查和数据交互。...无须担心,从github中pull下项目后在数据表里直接修改,只需要用: php artisan migrate:refresh 9、ORM 在介绍建表时已经使用了创建模型的命令: php artisan...make:model XXX; Laravel里模型是对面向对象开发思想最好的诠释,让对象帮我们完成需求。...: $request->session()->get(‘key');//获取session里的某个键名 $request->session()->set(‘key','default');//设定一个默认值...,当指定键名不存在便返回默认值 $request->session()->all();//返回所有数据 session(‘k'=>$v);//写入session保存数据 以及闪存数据session()-
为了安全起见,Laravel 框架创建的所有 Cookie 都经过加密并使用一个认证码进行签名,这意味着如果客户端修改了它们则需要对其进行有效性验证。...我们使用 Illuminate\Http\Request 实例的 cookie 方法从请求中获取 Cookie 的值: $value = $request->cookie('name'); 也可以使用Facade...Cookie来读取Cookie的值: Cookie::get('name', '');//第二个参数的意思是读取不到name的cookie值的话,返回空字符串 添加Cookie到响应 可以使用 响应对象的...Cookie服务,在实例化时会从Laravel的 config/session.php配置中读取出 path、 domain、 secure这些参数来设置Cookie服务用的默认路径和域名等参数,我们来看一下...读取Cookie Laravel读取请求中的Cookie值 $value=$request->cookie('name'); 其实是Laravel的 Request对象直接去读取 Symfony请求对象的
我们使用了 collect 函数从数组中创建新的集合实例,对其中的每个元素运行 strtoupper 函数之后再移除所有的空元素 $collection = collect(['pinux', 'php...也就是说,创建一个集合就这么简单: $collection = collect(['php', 'redis', 'laravel']); 默认情况下, EIoquent查询的结果返回的内容都是 Collection...,但是值类型不一致也返回false #8. count方法,返回该集合内的项目总数。...'); // taylor #可以选择性地传递默认值作为第二个参数: $collection = collect(['name' => 'taylor', 'framework' => 'laravel...'); // taylor #可以选择性地传递默认值作为第二个参数: $collection = collect(['name' => 'taylor', 'framework' => 'laravel
空对象模型 如果外键字段 user_id 允许为空的话,当我们访问 Post 模型上的 author 属性时,默认返回为 null。...Eloquent 允许我们为这种空对象定义一个默认的类型,这个对象的类型可以在定义关联关系的时候指定: public function author() { return $this->belongsTo...App\User 实例,你还可以为这个对象指定默认属性值: public function author() { return $this->belongsTo(User::class, 'user_id...'id' => 0, 'name' => '游客用户', ]); } 再次访问对应 Post 模型上的 author 属性时,就会返回如下默认的空对象了...: 该特性其实应用了设计模式中的空对象模式,好处是在代码里可以为不同情况编写一致性代码。
protected function storeCurrentUrl(Request $request, $session) { // 如果是GET,并且不是ajax,且route对象不能为空...对象时,传入的name值是读取的app['config']['session.cookie'] // 见 \Illuminate\Session\SessionManager::buildSession...session_domain',等会看下响应头 'session_domain' = $config['domain'] (6) Arr::get($config, 'secure', false) // 就默认值...false false = Arr::get($config, 'secure', false) (7) Arr::get($config, 'http_only', true) // 就默认值true...看下响应头设置了'laravel_session' cookie,并且'path','domain'是刚刚在session.php中设置的'/session','session_domain'值。
方法,该方法可用于测试空的任务链: Queue::fake(); Queue::assertPushedWithEmptyChain(ExampleJob::class); NoMigrations.../framework/blob/d25d45b389aac2492e923a8adf885095474f8d2f/CHANGELOG-6.x.md#v6140-2020-02-04,还可以对比 6.13.0...assertPushedWithoutChain 方法 在 Illuminate\Events\Dispatcher 中使用 Macroable trait 新增 NoPendingMigrations 事件 问题修复 使用当前 DB 实例创建...publish 命令中发布标签时移除重复的输出 修复 pluck 方法参数包含空格的问题 修复事件调度器中通配符缓存的问题 修复 RedisStore 中的无限值问题 修复 SqlServer 中删除包含默认值的列的问题...mysql 8.1 和 pgsql 9.5 的队列工作者中使用 SKIP LOCKED 在 Illuminate\Bus\Queueable::middleware() 中没有合并方法和属性中的中间件 从
我们在 php_learning/basic 目录下创建 array.php 来存放本教程编写的代码,初始化两个 PHP 索引数组如下: 值和其他语言一样,都是从 0 开始。...增删改查 除了像上述代码那样通过指定初始值进行数组初始化,还可以初始化一个空数组,在 PHP 中,初始化空数组时不必指定数组大小,也不必指定数据类型: $fruits = []; 然后我们可以依次往数组中追加元素...]; 可以看到其中包含了所有的基本类型数据,此外,还支持数组、对象等更复杂的数据类型,如果我们试图通过 print_r($book) 打印该数组的话,输出如下: ?...增删改查 关联数组的增删改查和索引数组类似,我们以 $book 为例,先初始化一个空数组: $book = []; 然后通过指定键值对来新增元素: $book['name'] = 'Laravel精品课
从 options 这个参数里面,我们可以看出,Laravel 默认使用的是 PDO 连接的数据库,我也没有研究在 Laravel 中如何使用 mysqli 进行连接,因为 PDO 确实已经是事实的连库标准了...它有两个参数,一个是指定的配置文件中的键名,一个是如果没有找到的话,就会给一个默认值。关于这个函数,还记得我们在之前就已经讲过了。...DB_CONNECTION_LARAVEL8=mysql DB_HOST_LARAVEL8=127.0.0.1 DB_PORT_LARAVEL8=3306 DB_DATABASE_LARAVEL8=laravel8...它的作用就是找到指定的连接,在默认情况下,Laravel 框架会去找 mysql 这个配置,如果我们需要操作其它数据库的话,就需要通过 connection() 来指定要连接的数据库。...总结 数据库上手就是一堆源码,不过这也让我们搞清楚了 Laravel 在底层是如何去创建一个 PDO 对象的。
返回一个 app('session'),使用应用容器实例化一个Session对象。...因为session是在页面请求之间的保持,所以Request对象也提供了session的方法。...比如直接根据键名获取值: $points = session()->get('points'); 如果键名不存在则使用默认值: $points = session()->get('points', 0)...这样, 我们就可以深度改造一下上面的 session()->get() 方法的第二个 default ,将其传入一个匿名函数, 用于处理获取默认值的逻辑。...points', function () { return (new PointGetterService)->getPoints(); }); 是不是瞬间又有新知识了 :-) 有了匿名函数的支持,这个默认值你可以玩出花儿来了
管道过滤器 通过之前的三篇文章,我们已经学习完了服务容器相关的内容,可以说,服务容器就是整个 Laravel 框架的灵魂,从启动的第一步开始就是创建容器并且加载所有的服务对象。...如果指定了可选参数 initial,该参数将用作处理开始时的初始值,如果数组为空,则会作为最终结果返回。...第二段则是增加了第三个参数给了个默认的 10 ,结果就是多乘了一个 10 的累乘结果。而最后一段则是一个空的数组,返回的是 initial 给定的结果。...参数不用多说了吧,stack 是上一次的返回值,pipe 是当前我们要处理的值,也就是当前的中间件对象。在这个回调函数中又调用了一层回调函数,并将这两个值通过 use 传递进去。...注意,这个 passable 和最后那个默认 initial 参数,都是我们当前的请求 Request 对象和路由 Route 对象。
laravel把用户的输入存储在 Input 对象内,而从逻辑上看,用户输入应该归属于请求项的,所以 Request 也继承了 Input 的方法和数据。...内置函数,默认的表单字段就是 __token,所以大可不必费心。...has方法不仅会判断该键存在,如果该键的值是 空(比如 null,空字符串,false,0,空数组,空对象等等),也是判断为false的。...用法很简单,直接调用方法即可: if ($request->has('utm')) { // Do some work } 如果对于输入值键不存在,我们也可以为其设置一个默认值,这就是 input...内获取数组可以使用点式方式读取,这是因为laravel解析的时候使用了助手类 Arr 的通用方法。
其实,这也是默认 Model 的一种机制。...对于 Laravel 中标准的 Eloquent 模型类来说,每个表都应该有两个字段,一个是 updated_at ,另一个是 created_at ,分别是两个时间戳字段,用于记录数据的创建时间和修改时间...这个参数是可选的,如果不填,它会默认找一个叫做 sex_id 的值,当然,在我们的数据中是没这个字段的,所以我们指定为 sex 。...最后 tap() 函数还是会把之前传递进行去的第一个参数的值,也就是最终的那个 DbSex 对象再一路返回到 __get() 中,这样,就完成了整个链条的调用。...参考文档: https://learnku.com/docs/laravel/8.x/eloquent/9406
如果你使用的是 Laravel 官方提供的 Sail 构建 Docker 开发环境,则 PHP Redis 扩展包已经默认安装: Redis 客户端连接与配置 在 redis-demo 项目根目录下的...config')->get('database.redis', []); // 使用 phpredis 还是 predis 连接器取决于 database.redis.client 配置,默认值是...与服务端建立连接的配置值位于 config 属性中,其中包含了 Redis 服务器 IP(redis 容器)、端口号(6379)、密码(默认为空)和数据库信息(默认是 0)等,此外还有一个 options...我们可以基于 Laravel 全局中间件结合 Redis 的 INCR 指令来实现这个功能,创建一个名为 SiteVisits 的中间件: php artisan make:middleware SiteVisits...,其默认值是 laravel_database_,所以在 Redis 底层,需要通过 laravel_database_site_total_visits 才能获取到对应计数器的值: 如果你初来乍到,不知道前缀是什么
laravel_session*的数据。...Laravel5.3把session垃圾回收放在了启动过程中,尽管Laravel5.1是放在session关闭过程的,本篇聊下垃圾回收,这也是session第一步启动session的过程。...protected function configHitsLottery(array $config) { // session.php中'lottery'默认配置是...forget($keys) { Arr::forget($this->attributes, $keys); } // 清空所有数据,$attributes为空...['session.store', XXX] $this->push('_flash.new', $key); // 删除'session.store'这个value值
Laravel 会在解析 POST 路由之前自动把用户输入的信息传递给相应的表单请求, 因此我们的所有验证逻辑都可以移到独立于控制器和模型之外的 FormRequest 对象中....开始实践: 快速创建一个 Laravel 5.0 项目 如果你还没有创建好的 Laravel 5.0 项目, 用下面的命令创建一个: $ composer create-project laravel/...所以你可以创建一个包含所有规则的 FriendFormRequest 作为基类, 然后把它扩展为 addFriendFormRequest 和 editFriendFormRequest 两个子类, 每个子类都可以实现各自的默认行为...} $thingBeingEdited = Thing::find(Input::get('thingId')); // 如果是编辑操作, 或者当前用户不是对象创建者...$dontFlash: 重定向时不要传递的输入项的键 (默认值: ['password', 'password_confirmation']).
引言 使用laravel的数据库迁移功能进行表的创建,和迁移回滚之后,我们继续说说在设计中 表结构的更改之后的处理。以及如何为数据库填充一些伪数据作为测试。...很多时候,并不是说我们创建了表,并且指定了字段名,和字段数据类型就算完事儿了。 我们需要空与非空约束,默认值约束,主键约束,外键约束等等数据库所具有的特性, 这才是关系型数据库的魅力。...比如声明一个布尔类型的值,并声明默认为false: $table->boolean('confirmed')->default(false); 比如设定一个字符串类型的字段,允许为null: $table...>string('comments')->nullable(); 比如设定整型为无符号数: $table->tinyInteger('age')->unsigned(); 在给上面的 age 字段设定默认值...所组装的SQL就默认是最后一个字段之后。
今天学院君来给大家演示如何在 Laravel 项目中基于 Redis 实现应用缓存功能,这想必也是很多人日常使用 Redis 最多的业务场景,这里的缓存指的是将数据库查询结果存储到 Redis,其目的是将数据加载从磁盘...IO 转化为直接从内存获取,从而提升应用性能。...我们再来看热门文章排行榜: 查询记录为空,模型实例数量也为空,说明成功命中了缓存。...createRedisDriver 方法基于 RedisStore 创建缓存存储器: 虽然外层被套上了 Repository 对象,但是这只是一个壳而已,是为了封装出统一的缓存操作 API,真正的存取逻辑还是在底层的缓存存储器中完成的..._cache'), 默认值是 laravel_cache,所以即便 Cache 门面和 Redis 门面设置的缓存键同名,由于前缀不同,所以对应着不同的字符串键值对。
) //获取的是一个数组 通过标签名获取标签 document.getElementByTagName('标签名') //获取的是一个数组 操作DOM 创建DOM对象 var div = document.createElement...c'}; for(var i in obj) { console.log(i,":",obj[i]); } ajax 之前对ajax并不熟练 考试要考所以重新整理一下 ajax对象的创建...> laravel 运行laravel项目 php artisan serve 创建laravel项目 composer create-project --prefer-dist laravel/laravel...make:model 模型名 创建中间件 php artisan make:middleware 中间件名称 自己定义验证规则 用validate关键字 required 必填 不能为空 present...必填 可以为空 filled 可不填 填时不能为空 nullable 验证字段值可以为null
领取专属 10元无门槛券
手把手带您无忧上云