选中项的 label 会被包装到 value 中传递给 onChange 等函数,此时 value 是一个对象。 当然,用getFieldsValue 也同样会被同时获取到....当然了,如果是在getFieldDecorator 中设置的话 ,需要在initialValue中设置好相关的值才行,比如 全部Select.Option> Select.Option value="cat1">类别1Select.Option> Select.Option...value="cat2">类别2Select.Option> Select.Option value="cat3">类别3Select.Option> Select.Option...value="cat4">类别4Select.Option> Select> ) } 只需要关注initialValue那一块便可以,其它的和正常书写代码内容是一样的
暂时先忘掉 template 标签吧,我们如何让每个子组件都继承基组件的 props 属性呢?...extends 选项子组件的确获得了来自基组件的 props 属性 合并策略 你可能会好奇,为什么子组件能继承 question 这个 prop 属性而不是覆盖它。...我们要么完全继承自基组件, 要么重新定义template选项并覆盖它,那我们如何合并它呢? 我的解决方式是使用 Pug 预处理器....它带有include和extends选项,所以它似乎很适合这种设计模式 基组件 首先,让我们把基组件的 template 转换成 Pug 的语法: div.survey-base..." :placeholder="placeholder"> 总结 运用上述策略我们可以构建出另外拥有私有属性和响应 HTML 结构的两个子组件 SurveyInputSelect 和 SurveyInputRadio
因此,在这篇教程中,我们将更进一步,一起来看下如何编写更加高级的 Artisan 命令,比如带输入参数、选项,以及能够与用户互动,输出图表/进度条的 Artisan 命令。...参数和选项 通过上一篇教程,我们已经知道 $signature 属性可以配置命令名称,除此之外,还可以将 Artisan 命令的参数和选项定义在里面,添加参数和选项到 Artisan 命令非常简单,我们以系统自带的...要为可选参数定义默认值,可以这么做: make:migration {name=create_users_table} 选项:必须设值、默认值以及缩写 选项和参数很像,但是选项有前缀 --,而且可以在没有值的情况下使用...; } 这样,我们运行 php artisan welcome:message,带上参数和选项信息,就可以输出对应的欢迎信息了: 用户交互 除了在命令行运行命令时手动设置参数值和选项值获取输入信息之外...参数和选项通过参数名和选项名作为键,如果选项没有值的话,以 true 或 false 替代。
引言 上一期我们详细演示了laravel生成的命令行的参数和选项的区别。然而数据获取的方式有很多,还有一些命令行应用程序,需要我们在程序执行的过程中,实时地获取用户的输入值。...并且,一个好的系统,是不可能没有输出提示信息的。所以本期我们就来说说,过程中的输入和输出。...,['Gators', 'Wolverines'],0); 第一个参数是提示文本,第二个参数传入一个数组,为可选择的一列值,第三个参数则是默认选中的那个值在数组内的索引位置。...只不过,laravel使用PHP程序调用并按照中断着色规则进行了文本包裹。 你有没有想过,中断能否像MySQL的中断那样,按照行列的对齐方式,输出一个类似表格的数据。...还有一个更人性化的需求,比如做任务,循环很多次,我们如何整体把握一下该进度的百分比呢?在命令行上有一个进度条就完美了。laravel想你所想,它提供了。
本文旨在揭开这些概念的神秘面纱,并就如何在 Laravel 应用程序和 MySQL 中以合理的方式处理日期和时区给出一些建议和最佳实践。...当前时区可以通过 time_zone 系统变量的值获得。...,看看时间戳的存储和检索在实际生活中是如何工作的。...就 TIMESTAMP 而言,存储和检索的实际值取决于Session 时区,而 DATE 和 DATETIME 的检索值始终与存储值完全相同。...现在让我们看看 Laravel 是如何处理日期和时间的。
关于时间戳、日期和时区的真正工作原理,似乎存在不少困惑。本文旨在揭开这些概念的神秘面纱,并就如何在 Laravel 应用程序和 MySQL 中以合理的方式处理日期和时区给出一些建议和最佳实践。...当前时区可以通过 time_zone 系统变量的值获得。...现在,让我们用具体的日期和时间举几个例子,看看时间戳的存储和检索在实际生活中是如何工作的。...无论数据库或会话的时区如何,您都将返回所存储的完全相同的值。...现在让我们看看 Laravel 是如何处理日期和时间的。
今天学院君来给大家演示如何在 Laravel 项目中基于 Redis 实现应用缓存功能,这想必也是很多人日常使用 Redis 最多的业务场景,这里的缓存指的是将数据库查询结果存储到 Redis,其目的是将数据加载从磁盘...在 Redis 系列开篇中已经介绍过,我们可以通过字符串数据结构来实现应用缓存,如果缓存的是对象实例或者集合而非文本字符串,可以通过序列化方式将其转化为文本格式,读取的时候再通过反序列化方式将其还原。...Laravel 提供了封装 Redis 存储器的独立缓存组件,不过这里为了方便大家了解底层实现原理,我们先使用原生的 Redis 实现对文章详情数据和排行榜数据的缓存。...,调用该方法时,如果缓存项存在,则基于底层缓存存储器的 get 方法返回对应值,否则的话,通过回调函数参数和过期时间设置缓存项并将其返回。..._cache'), 默认值是 laravel_cache,所以即便 Cache 门面和 Redis 门面设置的缓存键同名,由于前缀不同,所以对应着不同的字符串键值对。
因为我们已经完成了数据表中字段的定义、表与表的关系、以及最重要的一步:如何将数据及数据之间的关系写入数据库中,下面简单的来介绍下在 Laravel 是如何完成的。...course_id" in (1) How to save data to database 如何将数据保存到数据库 Laravel Factory 提供了一种很好的方式来 Mock 测试数据,一旦我们定义好...Create Course # 接下来我们来看在 Laravel 中是如何优雅的保存数据,这部分的记录你可以参考下面这几个 commit: feat: create course chore: switch...& Delete # 更新&选择&删除# 接下来我们来看如何在 Laravel 中实现查询/删除/更新操作,这部分的记录你可以参考下面这几个 Commit: - feat: create course...举个简单的例子,我们可以将一段文本通过各种过滤后再保存进数据库,如: (new Pipeline::class) ->send('This is the HTML content of a
PHPUnit 同时支持「单元测试」和「功能测试」两种特性。 我们会简单介绍 PHPUnit 「单元测试」和「功能测试」的基本使用方法。...继而,讲解如何在 Laravel 项目中创建「单元测试」和「功能测试」用例。...这就是应该如何创建「功能测试」用例的秘密。接下来我们将创建具体的测试用例,来讲解如何在 Laravel 中使用「单元测试」和「功能测试」。...单元测试 上一节我们搭建了用于测试的环境。本节我们会在 Laravel 中编写单元测试用例对 Post 模型进行测试。 幸运的是,Laravel 同样为我们提供了创建测试用例模版文件的命令工具。...以上就是如何在 Laravel 中使用单元测试的使用方法。 功能测试 这一节我们将学习如何创建功能测试用例来对先前创建的控制器进行「功能测试」。
-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡项目背景今天有客户买我们的蜻蜓Q系统之-短视频影视系统-优雅草蜻蜓film...方便前端使用:将 Laravel 的语言文件转换为 JSON 后,前端可以很方便地加载和使用这些语言数据。...易于集成:可以很方便地集成到现有的 Laravel 项目中,只需要进行简单的配置和安装即可使用。...创建一个翻译表(translations),用于存储具体的翻译内容,包含字段如 id、language_id(关联语言表的 id)、key(翻译的键,用于在前端引用)、value(翻译的值,即具体的文本内容...接口开发获取支持的语言列表:创建一个接口,用于返回所有支持的语言信息,前端可以根据这个列表展示语言切换选项。
它比默认的 Symfony 好得多,可以显示堆栈跟踪和一些关于请求的信息。尽管在 Laravel 中 Whoops 是默认值,但它是一个框架无关的(错误收集展示)。它仅仅显示通用信息。 ?...如果异常发生在视图中,我们将在这里显示视图名称。甚至:我们还将给出传递给视图的所有数据的列表。 用户选项卡 ? "用户" 选项卡包含有使用应用程序的用户和浏览器的更多信息。 上下文选项卡 ?...在 Context 选项卡中,我们显示关于您的 repo (repo 位于何处,签出提交 hash) 和环境 (您使用的 PHP 和 Laravel 的哪个版本) 的信息。 调试选项卡 ?...在 Debug选项卡中,我们将显示异常发生之前发生的事情。比如查询、日志和转储。在转储旁边,我们还显示您将 dump语句放在何处的文件名。...想学习如何添加自定义选项卡,请访问the documentation on adding tabs.
但是你要知道的是,Laravel 以及现代化的所有框架都是可以方便地配置主从分离的。另外,我们还要再回去 查询构造器 中,看一下我们的原生 SQL 语句的拼装语法到底是如何生成的。...对于如何实现的读写分离,我们从 原生查询 的 select() 方法来看。...从这里我们可以看出,Laravel 是根据参数来判断是否使用从库连接进行查询的,而我之前看过其它框架的源码,是 Yii 还是 TP 什么来着,有根据查询语句是否有 SELECT 字符来判断走从库去查询的...其实我们在 查询构造器 那篇文章中就已经看到过 Laravel 是如何生成 SQL 语句了,还记得我们分析的那个 update() 方法吗?...这个就是我们最早学习使用过的那个原生查询所调用的方法。接下来,我们再看一下 get() 方法,也就是获得查询结果集的方法。
先卖个关子,想想这和哪个设计模式有关?(文中自会揭晓) 今天的测试表和上篇文章的一样,改下表名或者直接用上篇文章的都可以。 增删改查 话不多说,马上我们就进入最简单的增删改查的操作学习。...查询语句相对来说会复杂一些,我们在测试代码中增加了 where() 、orderBy() 和分页相关的组织函数。最后,通过一个 get() 函数就可以获得列表的信息。...在 Laravel 中,默认情况下这个值设置的就是 PDO::FETCH_OBJ 。关于如何修改成 PDO::FETCH_ASSOC ,我们会在后面的文章中学习。...这篇文章中,我们又看到了 建造者模式 的应用,以及了解到了 链式调用 是如何实现的。而且更重要的是,我们也确认了 查询构造器 确实在底层还是使用的 原始SQL 的方式执行的。...同时,我们也找到了构造器创建的地方。依然是收获满满的一天呀。接下来,我们更进一层,下篇文章将看看如何通过 ORM 映射的 Model 来实现数据库操作的,并且看看它们是如何运行的。
Laravel 框架中的 DB 和 ORM 是两个不同的组件,关于 ORM 的概念,我们也将在相关的学习中了解到,但是现在我们先从简单的普通查询学起。...从 options 这个参数里面,我们可以看出,Laravel 默认使用的是 PDO 连接的数据库,我也没有研究在 Laravel 中如何使用 mysqli 进行连接,因为 PDO 确实已经是事实的连库标准了...直接提供一个方法让我们进行操作就好了嘛。其实,这也正是 Laravel 优雅的由来。为了更好地区分度和代码的清晰。...,通过它,我们获得了配置文件中相关配置的连接对象,比如 mysql 数据库的返回的就是 MySqlConnector 这个对象。...总结 数据库上手就是一堆源码,不过这也让我们搞清楚了 Laravel 在底层是如何去创建一个 PDO 对象的。
引入 Laravel 框架或其组件时,应始终使用版本约束,如 ^7.0,因为 Laravel 的主要版本确实包含非兼容性更改。我们会努力确保您可以在一天或更短的时间内更新到最新版本。...支持政策 对于 LTS 版本,例如 Laravel 6,提供了 2 年的错误修复和3年的安全修复。这些版本提供了最长的支持和维护窗口。...Eloquent 类型转换,包括转换成特定值对象的类型转换,请参照 Eloquent documentation。...Laravel 基于 Guzzle 的封装专注于最常见的用例和最棒的开发人员体验。...默认情况下,Laravel 将使用 mail 配置文件中的 default 选项指定的邮件驱动作为邮件驱动。然而,你可以通过 mailer 方法来使用特定的邮件驱动来发送邮件。
图片 Laravel Admin 管理后台模板的不同类型 在搜索引擎中粗略搜索,你会得到大概 20多种 Laravel Admin 模板的选项,尽管它们表面上看起来很相似,但实际上在用途和架构存在着很大差异...在码匠为大家介绍一些受欢迎选项的具体功能前,让我们先了解 Laravel Admin 模板五个不同的种类,以便结合自身需求更好地做出判断: 脚手架 脚手架主要是通过程序,自动化地创建启动和运行所需的文件和配置来生成...这些是视图和控制器的集合,可以自动添加 CRUD 逻辑和 UI 到现有的模型中。这种结构提供了一种快速获得模块化管理后台的方法,它可以轻松地添加到一个新的应用程序中,或改装到一个现有的应用程序中。...表格过滤和排序以及文本搜索等便利的功能来快速开发管理模板。...优点 优秀的文档,包含视频教程 强大的前端主题 非商业项目的免费选项 缺点 如果您想要所有工具和选项,则相对昂贵 Voyager 与我们目前看到的其他管理模板包不同,Voyager 是 Laravel
大家可以自己尝试一下,接下来我们要看一下如何使用 token 来进行 api 的登录和认证控制。一般情况下,我们可能会使用 jwt 或者 passport 之类的插件来做这种 api 的认证功能。...不过这些内容不在我们今天讨论的范围内,我们只是看一下默认情况下 Laravel 自带的认证是如何使用的。...中间件守护 在 Laravel 的认证体系中,中间件有守卫的职责,包括在配置文件和 Auth 的常用方法中都有 guard 这个单词的出现。我们在源码中主要就来看一下它的中间件是如何进行认证守护的。...这也是我们使用 api 方式可以用两种方式传递 token 的原因。最后,通过获得的 token 调用 UserProvider 服务提供者获得用户信息完成登录认证的判断。...这个命令是我们最开始第一篇文章搭建 Laravel 框架时就见过的。 所有 Laravel 加密之后的结果都会使用消息认证码 (MAC) 签名,使其底层值不能在加密后再次修改。
学习时间 对于数据库DBA可能更习惯从SQL的角度出发,从SQL现有的语言结构和功能上解决问题。...大家注意那个 IN 子句,其实是一个查询结果集,从另个表返回的。 写SQL真的很伤神,不如用框架自带的orm,操作起来非常人性化,拼装也很简单。那就抛出一个问题,Laravel如何实现上述的子查询?...->get(); 然后我们需要定制的 array,用于包裹返回值数据,那么直接用闭包就是。...不止一个方法 解决问题的方法永远不止一个,在Laravel中你还可以不像上一节那样,虽然很明确,写的很标准,可是并不是所有开发者都能达到那样的熟练度。 我们说说通用的,一般开发者所能想到的一些方法。...写在最后 本文通过一个SQL语句查询在Laravel中的实现方式,解释了laravel在拼装SQL查询时的自由度,使用起来非常灵活。
「查找附近 XXX」的功能是如何实现的。...然后,我们以上面获取到的城市坐标 (c_longitude, c_latitude) 为中心查询 50 公里范围内的所有咖啡店: SELECT id, city, (6371 *...Geo 指令的使用介绍 Redis Geo 提供了如下八个指令: 基本使用 我们可以通过 GEOADD 指令添加元素到 Geo 集合: 第一个参数是键名,然后是经度、维度和元素值,我们按照这个约定添加如下几个咖啡店及对应经纬度坐标到代表咖啡店集合的...距离单位,然后是非常多的可选项,具体细节阅读官方文档,这里我们简单演示几个查询场景: 我们还可以通过 COUNT 选项限定返回的结果数,以及 DESC 按照距离远近逆序排列(默认是 ASC,即由近及远)...: 如果想要返回距离值的话,可以添加 WITHDIST 选项: 注:其他 WITHXXX 选项功能类似,不一一列举了。
今天我们将在定义好模型关联的基础上进行关联查询、插入和更新操作,看看如何借助模型关联提高代码的可读性并提高编码效率。...$users->load('posts'); } 懒惰渴求式加载也是渴求式加载,只不过是在需要的时候才去加载,所以加上了「懒惰」这个修饰词,底层执行的 SQL 查询语句和渴求式加载是一样的: select...这样,我们就不需要在每个地方去判断如果文章作者信息为空该如何处理了,因为这种情况下返回的也是一个正常的 User 模型实例。...对于那些已存在的标签记录,我们可以通过更高效的方法与文章进行关联关系的绑定和解除,这个方法就是 sync,调用该方法时只需传入刚创建/更新后文章的标签对应 ID 值,至于哪些之前不存在的关联需要绑定,哪些存在的关联需要解除...(31); $comment->content = 'Laravel学院致力于提供优质Laravel中文学习资源'; $comment->save(); 再次查看评论模型及对应文章模型数据,可以看到文章模型的更新事件和评论模型的更新时间已经一致了
领取专属 10元无门槛券
手把手带您无忧上云