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

AlpineJS作者:不上班,一年站着赚10w刀

Livewire是一款基于Laravel(一款PHP Web开发框架)的全栈框架,让我们通过一个「动态搜索框」示例展示他「前后端一把梭」的特点: 定义搜索框组件: use Livewire\Component...与Vue的渊源 不得不说Livewire的语法很类似Vue2。这也难怪,毕竟Laravel社区与Vue是有渊源的(Laravel创始人在推上的一波推广让当时名气还不大的Vue有了出圈的影响)。...只有15个属性、6个特性、2个方法。与Livewire类似,都是走「上手简单、功能强大」路线。 截止现在,已经有1.8wstar。...所以,很长时间「Caleb」的收入只有少量的付费咨询。 19年一整年开源带来的收入是:2w刀。 转机出现在19年年末。...比如「Caleb」接受: 最低档 —— 14刀/月,面向个人开发者 最高档 —— 999刀/月,面向重度依赖Livewire的企业,可以得到定制服务 20年6月,已经有535人为「Caleb」提供至少

1.5K30

竟然有人质疑我还在用Laravel开发?别忘了PHP是最好的语言。

下面我介绍一下目前Laravel最新版(8.0版本)的新特性: Laravel 8 通过引入 Laravel Jetstream,模型工厂类,迁移压缩,队列批处理,改善速率限制,队列改进,动态 Blade...组件,Tailwind 分页视图, 时间测试助手,artisan serve 的改进,事件监听器的改进,以及各种其他错误修复和可用性改进,对 Laravel 7.x 继续进行了改善。...Jetstream 是使用 Tailwind CSS 设计的,你可以选择 Livewire 或 Inertia 脚手架。...例如,你的 User 模型 有个 suspended 属性,现在你想修改它的一个默认的属性值,你可以使用基类工厂类的 state 方法来完成。方法名字可以随意设置,毕竟这是个很典型的 PHP 方法。.../legacy-factories 扩展包,可以在 Laravel 8 中支持以前的模型工厂。

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

竟然有人质疑我还在用Laravel开发?别忘了PHP是最好的语言。(2)模型工厂类

下面我介绍一下目前Laravel最新版(8.0版本)的新特性: Laravel 8 通过引入 Laravel Jetstream,模型工厂类,迁移压缩,队列批处理,改善速率限制,队列改进,动态 Blade...组件,Tailwind 分页视图, 时间测试助手,artisan serve 的改进,事件监听器的改进,以及各种其他错误修复和可用性改进,对 Laravel 7.x 继续进行了改善。...Jetstream 是使用 Tailwind CSS 设计的,你可以选择 Livewire 或 Inertia 脚手架。...例如,你的 User 模型 有个 suspended 属性,现在你想修改它的一个默认的属性值,你可以使用基类工厂类的 state 方法来完成。方法名字可以随意设置,毕竟这是个很典型的 PHP 方法。.../legacy-factories 扩展包,可以在 Laravel 8 中支持以前的模型工厂。

2.7K41

Laravel 8 正式发布,一起来看看有哪些新特性吧

Laravel 8 已于昨天正式发布(非 LTS 版本),本次主版本发布引入了 Laravel Jetstream、模型类目录、模型工厂类、迁移文件压缩、频率限制优化、时间测试辅助函数、动态 Blade...Jetstream 使用的 CSS 框架是 Tailwind CSS,并且提供了 Livewire 和 Inertia 脚手架选项,你可以任选其一进行前端组件开发。...模型类目录 Laravel 8 终于在 app 目录下引入了 Models 子目录来存放模型类文件,所有通过 make:model 命令生成的模型类以后默认都会存放在这个目录下;不过,如果你选择删除这个目录...模型工厂类 从 Laravel 8 开始,Eloquent 模型工厂将基于类进行管理,从而支持不同工厂之间的关联关系,新的模型工厂调用语法如下所示,相比之前可读性更好: use App\Models\User...时间测试辅助函数 在 Laravel 中,一直都可以通过 PHP Carbon 库完全控制时间的修改,Laravel 8 则在此基础上往前更进一步 —— 在测试时使用一个更加方便的辅助函数来操作时间

2.6K30

Laravel 7发行说明

引入 Laravel 框架或其组件时,应始终使用版本约束,如 ^7.0,因为 Laravel 的主要版本确实包含非兼容性更改。我们会努力确保您可以在一天或更短的时间内更新到最新版本。..., 第一方 CORS 支持, 路由模型绑定作用域改进, 存根自定义, 数据库队列改进, 多邮箱驱动, 查询时间强制转换(casts),新的 artisan test 命令,以及各种其他错误修复和可用性改进...路由模型绑定优化 路由模型绑定优化由 Taylor Otwell 开发贡献 。 自定义键名 有时你可能希望使用 id 以外的字段来解析 Eloquent 模型。...$post; }); 隐式绑定约束 有时,当在路由中隐式绑定多个 Eloquent 模型时,可能希望对第二个 Eloquent 模型进行约束,使其必须是第一个 Eloquent 模型的子类。...在这种情况下,将假定 User 模型关联了名为 posts(路由参数名称的复数) 的关系,该关系可用于检索 Post 模型。 有关路由模型绑定的更多信息,请查阅路由文档。

9K20

我是如何通过开源项目做到年入 80 万的?

今天重新提起赚钱这个话题,是因为凌晨的时候,我偶然刷 Hacker News 排名第一的帖子:《我通过 GitHub 赞助商达成年入 10w 刀的成就》: ?...当他在 Laravel 上成功验证了其项目概念后,便开始着手开发 livewire 这一开源项目。 ?...https://github.com/livewire/livewire 这是一个专门针对 Laravel 开发的一个全栈框架,主要目的是为了减少开发者构建网站动态界面时的痛苦,提升网站开发速度。...在完成上述三个阶段的具体工作后,随着时间的积累,该开源项目的年赞助费成功达到了 80w 人民币。 能做到这个地步,绝非易事。技术、产品、营销几项能力,缺一不可。...所以,在这里我还是衷心建议大家,平时如果能抽出时间,多多少少搞一些开源项目,对个人技术提升和个人品牌打造,还是有一定帮助的。 写完这篇文章,已是凌晨 04:15。

92720

Laravel Eloquent 模型关联关系(下)

,通过 IN 查询获取关联结果,并将其附着对应的模型实例上,在后面访问的时候不会再对数据库进行查询。...`commentable_type` = "App\Post" and `content` like "Laravel学院%" and `comments`....当一个模型归属于另外一个模型时,例如 Comment 模型归属于 Post 模型,当子模型更新时,父模型的更新时间也同步更新往往很有用,比如在有新评论时触发文章页缓存更新,或者通知搜索引擎页面有更新等等...Eloquent 提供了这种同步机制帮助我们更新子模型时触发父模型的更新时间 updated_at 字段值更新,要让该机制生效,需要在子模型中配置 $touches 属性: // 要触发更新的父级关联关系...(31); $comment->content = 'Laravel学院致力于提供优质Laravel中文学习资源'; $comment->save(); 再次查看评论模型及对应文章模型数据,可以看到文章模型的更新事件和评论模型的更新时间已经一致了

19.5K30

为什么 Laravel 这么优秀?

definition course seeder 当模型模型之间的关系定义完成后,在我看来整个开发任务就已经完成 50% 了。...不过我觉得 Laravel 的不足不在性能,毕竟 PHP 作为脚本语言,就算我们把它优化极致,也不可能达到类似 Go 那么高的吞吐率,如果真的是为了性能,那为什么不选择其他更适合的语言呢?...在我看来最大的不足是繁重的社区生态;Laravel 之前只有 Blade 模版引擎,其语法和其他模版引擎大同小异,学起来很容易上手;后来 Laravel 推出了 Livewire 和 Inertiajs...Livewire 和 Inertiajs 都是一种类前端框架,它们提供了一种更加高效的方式来管理前端页面,并且能更好的和 Laravel 整合在一起。但是它却带来了更高的学习成本和更多人力资源的浪费。...这里还有个例子是 Laravel 在之前推出了 Laravel Bootcamp 用来教新人怎么快速上手 Laravel,但这之前只推出了两个版本,即 Livewire 和 Inertia,好在是被社区大佬及时反应后才在再后来加上了最原始的

16010

路由使用进阶(二)

App\Models\Task::findOrFail($id); }); Laravel 提供了一个「路由模型绑定」功能来简化上述代码编写,通过路由模型绑定,我们只需要定义一个特殊约定的参数名(比如...{task},然后默认以参数值作为资源 ID 在底层通过 Eloquent 查询获取对应模型实例,并将结果传递闭包函数或控制器方法中。...在 Laravel 中该功能通过内置的 throttle 中间件来实现,该中间件接收两个参数,第一个是次数上限,第二个是指定时间段(单位:分钟): Route::middleware('throttle...如果你觉得这种静态设置频率的方式不够灵活,还可以通过模型属性来动态设置频率,例如,我们可以为上述通过 throttle 中间件进行分组的路由涉及模型类定义一个 rate_limit 属性,然后这样来动态定义这个路由...属性值 }); }); 这样,我们就可以通过为不同的模型类设置不同的 rate_limit 属性值来达到动态设置频率限制的效果了。

8.5K40

综合对象及环境属性

set_max_area 0 环境属性 工作环境约束一方面是设置芯片的工作环境,一般就要告诉DC,使用恶劣的或者理想的环境模型对设计进行约束。...另一方面是为了保证电路的每一条时序路径延时计算的精确性,仅靠外部的输入延时和输出延时约束并不够,还要提供设计的环境属性。...综合时,综合工具会默认根据设计面积和节点处的负载自动选择合适的连线负载模型,如果要关掉自动选择线负载模型,可以使用命令: set auto_wire_load_selection false 线负载模型工艺库...为input或者inout的端口设定驱动,是因为,对于输入端,为了精确计算输入电路的延时时间,DC需要知道到达输入端口的转换时间: 通过设置驱动强度,告诉DC这个设计的输入端口实际上是由一个真实的外部单元驱动的...,不是理想的,DC就会计算输入信号的实际转换时间,指定某一个库单元正在驱动输入端。

63120

3分钟短文:Laravel模型读数据的那个“障眼法”

laravel框架继承了广泛使用稳定可靠的 Carbon 类库用于操作日期时间。...为了测试方便,我们不需要写额外的代码,直接使用 tinker 命令行交互工具,在命令行输入: tinker 进入交互界面,然后我们使用模型查询一条 events 表的数据,并访问其属性: namespace...App; $event = Event::find(1); $event->created_at 打印 created_at 属性输入内容如下: => Illuminate\Support\Carbon...访问器 其实上一节所说的日期时间的格式化,正是laravel模型访问器的功能。专门用于在模型层面,修改模型属性的展示方式。定义一个访问器非常简单,就是在模型内添加规范格式的方法函数。...这是laravel提供的语法糖,很好使! 写在最后 本文通过日期时间字段的格式化方法,引申出laravel模型的访问器功能,并通过实例介绍了具体的用法。

92211

laravel框架模型和数据库基础操作实例详解

本文实例讲述了laravel框架模型和数据库基础操作。...使用了pdo参数绑定,使应用程序免于sql注入,因此传入的参数不需要额外转义特殊字符。基本上可以满足所有的数据库操作,而且在所有支持的数据库系统上都可以执行。...新增数据、自定义时间戳、批量赋值 (1)使用save方法新增 laravel会默认维护created_at,updated_at 两个字段,这两个字段都是存储时间戳,整型11位的,因此使用时需要在数据库添加这两个字段...如果不需要这个功能,只需要在模型里加一个属性:public $timestamps=false; 以及一个方法,可以将当前时间戳存到数据库 protected function getDateFormat...(4)firstOrNew()以属性查找记录,若没有则会创建新的实例。

2.8K20

结合 Bootstrap + Vue 组件实现 Laravel 异步分页功能

="posts"> 我们通过 pagination-component 引入分页组件,并且从当前页面传递参数 page-type 组件中,...关于 Vue 组件的基本结构,我们在编写第一个Vue组件教程中已经讨论过,这个分页组件比我们之前编写的 Vue 组件都要复杂一些,我们在这个组件中应用了更多的 Vue 特性,包括从父视图中传入属性,定义模型属性...使用prop传递属性 我们在父视图中声明组件的时候传递了一个属性 page-type 组件,用于标识该组件应用的页面类型,然后在组件中,我们可以通过 props 声明从父视图/组件中传递进来的属性(转化为驼峰格式...动态设置组件模型属性 我们可以将组件用到的动态数据设置为模型属性,这些属性值发生变更后会实时更新引用它的视图元素,反之视图元素输入值的变更也会同步模型属性,这称之为双向绑定,通过这个特性可以大大提高编写客户端代码的效率...通过列表渲染显示分页数据和链接 在设置好 paginator 和 elements 属性值之后,就可以在模板中通过列表渲染和动态绑定显示文章信息和分页信息了,具体可以查看 template 标签中的代码

7.3K20

关于 Laravel 应用性能优化的几点建议

,进而导致每次新请求需要重新初始化服务容器导致的,换做是常驻内存的静态语言,这反而可以是优点),我们是可以通过一些常规的手段将 Laravel 应用的性能优化一个合理的水平的。...负载测试 以学院君网站为例,前段时间我通过一些常规的手段对其进行了优化。...我们对比同等条件下百度首页的并发测试结果,RPS 是 140 左右: 百度首页负载测试结果 如果我把学院君网站扩展成一个拥有3~5台同样配置机器的集群,理论上就可以支撑起这样的并发请求,当然这里并不是要把学院君网站拔高百度这么高的水平...CSS 框架)、Livewire(一个使用 PHP 代码即可编写前端组件的框架,极大降低了后端开发人员进行全栈开发的学习成本)的开箱支持,进一步降低了 PHP 全栈开发的门槛。...预告篇:接下来,学院君更新完全栈工程师系列基础篇第三幕 Vue.js 教程后,会全面演示 Laravel 框架如何从无有基于 TDD 模式进行实战项目开发,包含后续性能优化、持续集成和应用部署等完整的应用开发周期

3.5K21

3分钟短文:Laravel查询构造器,告别手写SQL的艰苦岁月

本文先不说模型,说说直接的查询构造器,说说怎么把数据筛选出来,这用的应该是最多的了。 代码时间 说起柔顺,你想起来什么?是撸代码,没错,就是它。...下面是laravel里用的最多的写法: $users = DB::table('users')->where('type', 'donor')->get(); 这些是不是顺多了,一气呵成,要的就是这个感觉..., [true]); 这种是按照参数顺序依次绑定的,还可以使用占位符和键值对的方式: $usersOfType = DB::select('select * from users where type...= :type', ['type' => $userType]); 这样绑定的参数就不会担心传入的次序了。...`type` = `valid`; 对于写操作,我们也使用参数位置绑定的方式展示: DB::insert('insert into contacts (name, email) values (?

1.7K11

3分钟短文:Laravel查询构造器,告别手写SQL的艰苦岁月

本文先不说模型,说说直接的查询构造器,说说怎么把数据筛选出来,这用的应该是最多的了。 代码时间 说起柔顺,你想起来什么?是撸代码,没错,就是它。...下面是laravel里用的最多的写法: $users = DB::table('users')->where('type', 'donor')->get(); 这些是不是顺多了,一气呵成,要的就是这个感觉..., [true]); 这种是按照参数顺序依次绑定的,还可以使用占位符和键值对的方式: $usersOfType = DB::select('select * from users where type...= :type', ['type' => $userType]); 这样绑定的参数就不会担心传入的次序了。...`type` = `valid`; 对于写操作,我们也使用参数位置绑定的方式展示: DB::insert('insert into contacts (name, email) values (?

1.2K10

3分钟短文:Laravel 使用DB门面操作原生SQL

引言 我们推荐使用laravel的eloquent orm 模型操作数据库表, 因为特性更为丰富,组装更为灵活,在编程层面操作数据的来来去去非常直观。...扩展一下,带有查询条件的SQL原生语句, 为了防止SQL注入,使用参数绑定的方式: $usersOfType = DB::select('select * from users where type =...type' => $userType]); 插入新数据,其实与上述的带有占位符参数绑定的SQL查询语句类似,只是SQL语法不同而已: DB::insert('insert into contacts (..., [1]); 写在最后 本文通过对laravel DB门面的增删改查用法,向大家展示了基本的参数绑定的用法。...一般我们不推荐使用原生SQL语句操作数据库,提倡大家把数据库操作集中模型层, 充分利用eloquent orm的性能。

2K20

wire 源码分析

wire.go 中若有非 injector 的代码将被原样复制 wire_gen.go 中(虽然技术上允许,但不推荐这样作)。 // Code generated by Wire....但它要求注入属性可公开访问, 这导致对象暴露本可隐藏的细节。 好在这个问题可以通过上面提到的“接口注入”来解决。用 wire.Struct 创建对象,然后将其类绑定接口上。...*值绑定* 虽不常见,但有时需要为基本类型的属性绑定具体值, 这时可以使用 wire.Value : // provider.go type Foo struct { X int }// wire.go...为接口类型绑定具体值,可以使用 wire.InterfaceValue : wire.Build(wire.InterfaceValue(new(io.Reader), os.Stdin)) *把对象属性用作...意味着无论分配了多少资源, 只要调用过程不出错,他们的清理工作就会被集中统一的清理函数中。

77920

Laravel框架Eloquent ORM新增数据、自定义时间戳及批量赋值用法详解

本文实例讲述了Laravel框架Eloquent ORM新增数据、自定义时间戳及批量赋值用法。...分享给大家供大家参考,具体如下: 好了,这篇文章我们主要掌握以下几个知识点 通过模型新增数据(涉及自定义时间戳) 使用模型的Create方法新增数据(涉及批量赋值) NO.1通过模型新增数据 我的数据库和上篇文章结尾的数据库样式是一致的...,那么我要想在这里面输入一个名字叫做ChenChai,年龄是为17岁。...你会发现,这里新增的数据有修改时间和新增时间,那么如果你不想用,手动删除的话,则要去我们最先创造的模型文件里去设置一个属性即可 如下: ? 然后你再新增,就不会出现了 ?...只需要在模型文件里增加一个属性 如下: protected $fillable = ['name','age'];//这里是可以批量赋值的属性 然后结果如下: ?

1K61
领券