首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么 Laravel 这么优秀?

为什么 Laravel 这么优秀 Laravel 一直是心中最优雅后端框架,为了向更多的人解释为什么 Laravel 这么优雅?框架本身都做了什么操作?比起其他框架优势在哪里等?...准备从一个后端最常用 CURD 例子说起,一步一步阐述这过程中 Laravel 都是怎么完成;以及~大家~()为什么喜欢用 Laravel。...我会按照理解最佳实践做法,一步步实现一个完整 CURD;但不会一来就把 Laravel 各个优秀组件抛出来,而是遇到什么组件后再尝试理解它为什么这样设计、比起其他框架优势在哪里。...猜这也是为什么 Laravel 不需要实现其他优秀路由算法如 Radix Tree 原因吧。...我们还使用了 Laravel Resource 来格式化最终输出格式,这样原因是很多情况下我们不希望直接将数据库字段暴露出去,你甚至还能在 Laravel Resource 中按不同角色显示不同字段

16710

Laravel5.8代码中Get到小彩蛋

今天看Laravel5.8代码时候,看到几个小彩蛋。 ? 1、获取关联数组中指定部分键值组成数组 项目中常常有这么一种场景,一些数据生成需要一些其他数据获得,但是返回给用户不需要原始数据。...", "type":1, "status":1, "system_code":"xtfy", "system_uid":1, "file_id":1 } 如果最终想要返回给用户结果如下...实现方式有一下几种方式: unset不需要数据字段 重新创建一个变量,然后一个个字段添加到新数组中去 在Laravel5.8中Support\Arr中有一个only方法,使用php原生数组函数键名交集...实现方式如下: array_intersect_key( $array, array_flip((array) $keys) ); 根据这个思路,获取指定键之外数组可以用下面的方式实现: array_diff_key...之前做法都是判断键是否都是数字,其实是不准确。 在Laravel5.8中有一个isAssoc方法。

66330
您找到你想要的搜索结果了吗?
是的
没有找到

Laravel系列1】进入 Laravel 世界

在这其中,我们主要学习就是 Laravel 框架,那么为什么Laravel 呢?明明 TP 、 Yii 也是很多人在使用呀。...除了这两个之外,目前使用项目中,还用到了 Swoole 和 Hyperf ,这两个一个是扩展框架,一个是基于 Swoole MVC 框架,同样也都是我们中国人开发。...话说回来,除了上面比较出名之外,还在实际项目中接触及使用过 CodeIgniter 以及 CakePHP ,不过都是很早之前了。...如果从路线图来说的话,那么接触框架顺序是这样:Cake -> CodeIgniter -> TP -> Yii -> Laravel -> Hyperf 。...当然,并不是说不能用,在一系列优化以及开启 OpenCache 情况下,Laravel 也是很能顶,毕竟大部分项目和大部分公司,能到 500 并发量都是少数。

1.2K20

Laravel和Thinkphp有什么区别,哪个框架好用

3、Laravel框架提供了大量闭包 作为菜鸟目前只使用了use方法,即如何在函数内部使用外层变量。...email;same:字段名;diff:字段名等大量方法极大提高了开发速度。...8、建表 Laravel在数据库建表上有自己独立内置结构,可以完全不用借助原生SQL语句或者SQLyogEnt、Navicat这样建表工具进行数据库建立,增删改查和数据交互。...新手为什么不强烈推荐呢?...主要是Laravel框架是一个国际框架,很多都是英文文档,虽然还有中文文档,但是资料有限,很多有用资料都不是免费可以说是Laravel框架是半开源代码,新手如果没有人带,可能需要学习精力是有限

5.9K20

【译】20个 Laravel Eloquent 小技巧(上)

腾讯实习项目按照公司主流技术选型是PHP 流派,而我习惯了 JAVA 体系面对这个最好语言还是挺不适应。...下面是翻译自 Laravel-News 一篇教程,总结了 Laravel 对象关系映射框架(ORM)几个小技巧。...模型 boot() 方法 在Eloquent模型中有一个名为boot()神奇地方,您可以在其中覆盖默认行为: class User extends Model { public static...,通过模型中定义 getXXXAttribute 方式来定义 } 可不仅仅有这些,还有: protected $primaryKey = 'uuid'; // 模型主键名称可以不是默认 id public...(1)->get(); 是的,你也可以改成任何字段名称,并将其作为后缀附加到“where”,它将神奇产生预想效果(通过魔术方法实现调用)。

2.2K50

PHP LaravelTrait是什么

Trait一个例子可以是: 微信图片_20191120172730.png 然后你可以把这个trait 包含在其他类中,就像这样: 微信图片_20191120172817.png 现在,如果要从这些类中创建新对象...从上面的示例中可以看出,尽管没有定义该方法,但是对象Post和Comment对象都具有share()可用方法。 Trait基本上只是一种在运行时“复制和粘贴”代码方法。...经常检查代码以及如何构建代码,以便可以快速完成未来功能添加,并且新项目可以轻松扩展以前想法。 如何在laravel中使用trait ?...Http目录中创建了一个Trait目录,其中有一个名为TraitBrandsTrait.php 微信图片_20191120172938.png 这是BrandsTrait.php 微信图片..._20191120173017.png 以上就是PHP LaravelTrait是什么详细内容,大型PHP项目实战直播资料扫码加我获取,也可以(点击加群)获取学习资料 QQ图片20191120195111

3K30

Laravel系列4.3】模型Eloquent ORM使用(一)

这样看貌似没问题呀,可是为什么报错是 m_tests 表不存在呢?这就牵涉到上面 Active Record 概念了,在 AR 中,一个类对应是一张表,而一张表是由多行数据组成。...其实所有的表最好都有这两个字段,而且很多后台管理系统中还需要有 创建人 和 修改人 记录。它们目的都是为了数据安全和记录可追溯。...如果你中有这两个字段的话,那么在 Model 操作过程中,你可以忽略这两个字段操作,Model 系统会自动设置它们。...这样原因也正是为了保持数据一致性和完整性。 当然,在 Laravel 中,可以不在数据库层面进行严格设置,就可以在框架代码中实现主外键关联。...,毕竟原理都是想通,其它大家有兴趣可以自己继续深入地分析。

8.8K20

解决方案 - 自动化单元测试

前言 收到读者咨询,情况是这样: “亮哥,看了你最近 8 篇关于持续交付文章,想咨询一下对于研发人员有没有可落地方案,是 PHP 研发工程师,项目中使用Laravel 框架,负责是电商业务...Case,比如就支付这块就有很多种排列组合,退款这块也会有很多排列组合,原理都是一样,只要上面的两个会写了,其他也就都会写了。...项目的框架是 Laravel,那么我们考虑就是在框架中如何编写单元测试代码?这个比较简单,在 tests 目录就可以编写测试用例。...二、如果执行项目内全部 case 怎么办?命令这样写就可以 ./vendor/bin/phpunit tests。 三、Case 一定 API 测试吗?不一定,也可以测试自己方法。...小结 以上,就是一个可落地方案,基本上跑通了,在此基础上编写就可以,根据自己业务场景去完善吧。 在这做个小调查,大家在项目中都编写测试用例吗,为什么?欢迎大家在留言区评论。

1.3K10

怎样选择适合自己php框架

门通过说明怎么比较它们来帮助大家选择一个最适合自己需求框架。 为什么选择使用PHP框架? 是什么让我们使用框架而不是使用纯粹php原生语言来开发我们应用?...你可以使用模块化方式在你项目中使用Symfony提供30个组件。 Yii框架使用MVC模型(Symfony也提供对MVC支持) Symfony 可以用来快速开发和用于复杂项目。...Laravel不像另外2个框架一样提供激进模块化支持。 如果你正在寻找一个模块化框架,就去选择Symfony,其他的话,Laravel和Yii都是很好选择。 安装 这三个框架提供了许多安装程序。...并不是很多,但是框架性能在许多项目可以起到关键作用。...说到学习资料和文档,Laravel突出出来来,尽管Symfony和Yii并没有落后很多。 可扩展性 框架是可以通过扩展或包进行扩展结构,用来改进了它们功能和范围。说到扩展,Laravel是赢家。

4.7K20

Laravel jwt 多表(多用户端)验证隔离实现

# JWT 多表验证隔离 为什么要做隔离 当同一个 laravel 项目有多端(移动端、管理端……)都需要使用 jwt 做用户验证时,如果用户表有多个(一般都会有),就需要做 token 隔离,..., "nbf": 1558668215, "jti": "XakIDuG7K0jeWGDi", "sub": 1 } 携带数据是 sub 字段其他字段是 jwt 验证字段。...: getJWTIdentifier :获取会储存到 jwt 声明中标识,其实就是要我们返回标识用户表主键字段名称,这里是返回是主键 ‘id’, getJWTCustomClaims:返回包含要添加到...接下来我们就可以在实现了 getJWTCustomClaims 方法用户模型中添加我们自定义信息了。...这样管理员生成 token 会像这样: { "iss": "http://your-request-url", "iat": 1558668215, "exp": 1645068215, "nbf

2K31

【译】深入研究 Laravel 依赖注入容器

不幸是官方文档并没有涵盖所有可用功能,因此,决定尝试写文档为自己记录一下。以下是基于Laravel 5.4.26,其他版本可能有所不同。...依赖注入简介 不会尝试在这里解释DI/IOC背后原理,如果你不熟悉它们,你可能需要去阅读由Fabien Potencier(Symfony框架作者)创建什么是依赖注入 访问容器 在Laravel中有几种访问...Container实例方法,但最简单方法是调用 app()helper方法: $container = app(); 今天不会描述其他方式,而是想专注于Container类本身。...任意绑定名称可以使用任意字符串而不是使用一个 类/接口名称尽管你不能使用类型提示检索它,但必须使用 make()代替: $container->bind('database', MySQLDatabase...在Laravel 5.5 可能会 恢复到Laravel 5.3 语法._ 其他方法 这里涵盖了认为有用所有方法,但只是为了整理一些内容。

4.6K70

从0开始做一个审批模块

最近接到了一个『审批』模块需求,大概就是某某某申请加入某某项目、某某某报销申请等待您审批这样。...具体需求场景 •允许用户申请加入团队或者项目•申请之后系统推送审批通知给对应管理员•管理员可以对申请进行审批:通过或者拒绝•审批通过则申请者顺利加入团队/项目中,否则申请无效•审批结果推送给管理员以及申请者...所以我们可以增加两个字段 target_type、target_id 。...当然他可以有更多其他目的,比如说申请一份项目资料、申请团队经费报销等等,所以我们可以抽象出来一个字段 action ,也就是审批通过之后会执行动作。...4.这样审批理由是什么? reason 有时候拒绝了,备注个理由,申请者就可以清晰明白为什么

1.7K10

使用Laravel查询构造器实现增删改查功能

引言 上一篇介绍了如何在windows环境下跑一个 laravel 项目,这一篇写如何使用 laravel 查询构造器 实现增删改查。...现在我们需要配置一下 路由 , 所有的 Laravel 路由 配置都在根目录 routes 里, routes 目录中有4个路由配置文件, 这里不谈其中区别, 只关注 web.php , 后面所有路由我们都在此文件里追加...看到这里同学也建议看一下 laravel 路由文档, 因为文中讲不是很细, 传送门: https://learnku.com/docs/lara… 顺便一说, 个人选择 laravel 作为深入学习...php框架, laravel优雅路由是选择它一个重要原因....laravel中查询构造器可以使用 delete 方法从表中删除记录。

4.7K30

laravel 学习之路 数据库操作 Migrations

在远古时代在中小公司中在没有一套比较好用管理表变动方案时候相信童鞋们多少都经历过改数据库痛苦,每次自己在本地增加了表或者字段都要记录下来告知其他同事,其他同事也得在自己本地修改,还要胆战心惊改生产跟测试环境数据库这种经历贼痛苦...--table 和 --create 选项也可用于确定表名称以及是否在迁移中创建新数据表。...在这两种方法中,你可以使用 Laravel 结构生成器以表达式方式创建和修改表。...这我们就发现了 laravel 又一特点,整个项目对于各种命名斟酌,很多时候我们即便不看文档甚至不看源代码注释只看方法名就能猜到作用了,她不只是一个框架还是我们编程一个范本。...timestamp ,其他字段都多了个 NOT NULL ,这个我们并没有在迁移中指定,这里就需要解释下了,这个 NOT NULL 是 laravel 为我们默认添加,那如果确实有字段想让它允许为

2.3K20

Laravel-admin之修改操作日志方法

以前后台都是使用自己手写日志,但是最近公司工作较多,修改其他项目的任务就搭在了身上,今天用户要修改后台操作日志界面,让登陆者可以更多地知道登录后端者所有相关操作:包括谁修改了,谁删除了,谁审核了...,谁添加了,这样才能根据相应操作者进行相应处罚。...现在要修改则是Laravel-admin后台,要想修改操作日志, 需要如下操作: 1.找到原始操作日志控制器文件LogController.php: \vendor\encore\laravel-admin...' = \App\Http\Middleware\OperationLog::class, 以上步骤即可成功,然后根据需求进行对应信息提取即可,但是添加数据时需要注意是不要使用系统常量,否则系统常量字段无法插入成功...中, 将protected $fillable = [‘user_id’, ‘path’, ‘method’, ‘ip’, ‘input’];中添加相对应字段,则添加相应显示数据正常!

1.3K31

详解将数据从Laravel传送到vue四种方式

在过去两三年里,一直在研究同时使用 Vue 和 Laravel 项目,在每个项目开发开始阶段,必须问自己 “将如何将数据从 Laravel 传递到 Vue ?”。...例如,如果环境变量文件中有 API_DOMAIN=example.com,可以 Vue 组件(或使用 mix 编译其他 JavaScript )中使用 process.env.API_DOMAIN...否则,可以进行一次修改,以确保在几秒钟内与 Vue 完全兼容。 回到上面的 RouteServiceProvider, 交换出 web 方法中 api 中间件。我们为什么这样做?...这个方法唯一警告是,你必须使用 Laravel 和 一个 blade 模板来渲染前端。这样框架可以将必要会话令牌和变量注入到请求当中。 使用 JWT 认证 API 调用 ?...在这个基础上,用来构建新项目或者在现有的 Laravel 应用中使用绝对是一件简单事情。

8K31
领券