Laravel 的分页实现集成了 Query Builder 和 Eloquent ORM,提供了一种非常方便的分页接口。
基础使用
最简单的方式就是使用 query builder 和 Eloquent query 的 paginate 方法,这个方法会自动处理请求的 limit 和 offset 参数。
默认情况下,当前页面的参数使用 page 表示。
所以在 Controller 中直接指定一页请求的条数即可:
<?php
namespace App\Http\Controllers;
use App\Http\Control
Read more ...
Laravel 使用的 Eloquent ORM 中的 Model 可以用一种非常易读的方式去定义 Model 和 Model 之间的关系。
1 对 1 关系
比如 User 和 Phone 都是一个 Model,要去表示用户和 Phone 的关系,可以:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* Get the phone associated with
Read more ...
Laravel Event 提供了一个最简单的观察者模式实现,可以订阅监听应用中发生的事件。事件通常放在 app/Events 目录,监听器放在 app/Listeners。
事件是应用功能模块之间解耦的有效方法。单个事件可以有多个监听器,监听器之间相互没有影响。
比如说每次有订单产生时,发送给用户一个 Slack 通知,通过事件,可以将处理订单的代码和 Slack 通知代码解耦,只需要发起一个事件,监听器监听订单产生事件,然后触发响应的动作即可。
注册事件/监听器
可以使用如下的命令创建 Event
php artisan event:gen
Read more ...
当需要构建一个网络应用的时候,可能有一些任务,比如解析、存储、传输 CSV 文件等等,可能需要花费较长的时间。Laravel 提供了一个非常简单的队列 API,可以让这些操作可以在后台进行。让这些繁重的任务在后台执行可以有效的提高应用的响应速度,提升用户使用体验。
Laravel 队列提供了一个统一的 API 访问入口,可以支持不同的队列:
[[Amazon SQS]]
[[Redis]]
[[Beanstalk]]
甚至关系型数据库
Laravel 队列的配置在 config/queue.php 中。
Laravel 还提供
Read more ...
在我最初的设计中一共有两个地方需要发送邮件:
第一就是用户注册,发送邮件激活
第二就是当用户订阅一个书单的时候,自动给所有订阅的用户发送带有附件的电子书到其设定的邮箱中
所以接下来就记录一下使用 Laravel 发送邮件。
在 Laravel 中发送邮件并不是那么复杂。Laravel 通过 Symfony Mailer 实现了一套非常简洁的邮件 API。
Laravel 中提供了很多种方式来发送邮件:
[[SMTP]] 直接配置 SMTP服务器
[[Mailgun]] 通过 Mailgun 等发送邮件的服务提供商
[[
Read more ...
在搭建了自己的邮件服务器之后,经常收到 Gmail 和 Outlook 的 Report,类似:
Report domain: example.com Submitter: google.com Report-ID: 73941XXXXX
或
Report Domain: example.com Submitter: protection.outlook.com Report-ID: 200aa9XXXXXXXXXX
所以再整理一下 DMARC 报告。
在之前介绍 DMARC 的文章中介绍过其中 rua 和 ruf 两个配置的作用,这两个配
Read more ...
上传文件是一个网页应用必不可少的一部分,这里就记录一下 Laravel 中如何上传,并展示图片。
拆分开来主要分为如下几个步骤:
创建数据库 Model,用一个 Model 实体来保存上传图片的路径以及相关的 meta 信息
添加 Controller 层用来处理保存图片逻辑,以及持久化的过程
创建前端 Form 表单,并提交 POST 请求,提交图片
创建数据库 Model
首先使用 artisan 创建一个 Model 和 migration:
php artisan make:model Photo -m
这行命令会创建
Read more ...
Laravel 提供了多种安装方式:
可以通过官方提供的 [[Laravel Sail]] 初始化环境,Laravel Sail 是一个轻量的命令行工具可以和 Docker 开发环境交互。这意味着如果要使用 Sail 本地需要安装 Docker 环境。
通过 [[Composer]] 安装,Composer 是一个 PHP 环境下的依赖管理器工具
Laravel Installer
Laravel Sail
Sail 的核心是项目中的 docker-compose.yml 文件。
curl -s "https://laravel.b
Read more ...
从上周开始和朋友进行一个以 21 天为一个周期的计划,每个人都制定了一个 21 天的目标,从计划到完成每一个步骤都计分,最后按照打分给每个小伙伴奖励或者惩罚。
所以我从我的计划列表中搜寻了一下大致看了一些 TODO,很多细碎的任务大都花不了一两天时间,所以就思考了一下有没有什么目标适合这个时间段,后来发现最近自建的一些项目好像都是用一个框架写成的,比如有一个可以自建的 PT 站 [[UNIT3D]],比如非常轻量的论坛 [[Flarum]],还有 [[Koel]] 一个在线的音乐播放器,还有很多很多。所以想来 21 天可以用来熟悉一下这个框架,也可以用
Read more ...
Warp 是一个 Rust 编写,使用 GPU 渲染的终端(terminal)应用。目标是提升开发者的效率。
最近 Warp 发布了新闻稿,筹集了 2300 万美元的资金全力用来构建这个终端。
它之前筹集了 600 万美元的种子轮融资,由 GV 领投,Neo 和 BoxGroup 参投。还筹集了 1700 万美元的 A 轮融资,由 Figma 的联合创始人兼首席执行官 Dylan Field 领投。由企业家主导的这一轮投资,其参与者包括 Elad Gil、LinkedIn 前首席执行官 Jeff Weiner 和 Salesforce 的联合创始人兼
Read more ...