1、简介当构建 JSON API 时,经常需要转化模型和关联关系为数组或 JSON。Eloquent 包含便捷方法实现这些转换,以及控制哪些属性被包含到序列化中。2、基本使用2.1 转化模型为数组要转化模型及其加载的关联关系为数组,可以使用 toArray 方法。这个方法是递归的,所以所有属性及其关联对象属性(包括关联的关联)都会被转化为数组:$user = App\User::with('roles')->
1、简介访问器和调整器允许你在获取模型属性或设置其值时格式化 Eloquent 属性。例如,你可能想要使用 Laravel 加密器对存储在数据库中的数据进行加密,并且在 Eloquent 模型中访问时自动进行解密。除了自定义访问器和调整器,Eloquent 还可以自动转换日期字段为 Carbon 实例甚至将文本转换为 JSON。2、访问器 & 调整器2.
1、简介Eloquent 返回的所有多结果集都是 Illuminate\Database\Eloquent\Collection 对象的实例,包括通过 get 方法或者通过访问关联关系获取的结果。Eloquent 集合对象继承自 Laravel 的集合基类,因此很自然的继承了很多处理 Eloquent 模型底层数组的方法。当然,所有集合也是迭代器,允许你像数组一样对其进行循环:$users = App\User::where('active', 1)->get();
1、简介数据表经常要与其它表做关联,比如一篇博客文章可能有很多评论,或者一个订单会被关联到下单用户,Eloquent 使得组织和处理这些关联关系变得简单,并且支持多种不同类型的关联关系:一对一 一对多 多对多 远层多对多 多态关联 多对多的多态关联2、定义关联关系Eloquent 关联关系以 Eloquent 模型类方法的形式被定义。
1、简介Laravel 自带的 Eloquent ORM 提供了一个美观、简单的与数据库打交道的 ActiveRecord 实现,每张数据表都对应一个与该表进行交互的“模型”,模型允许你在表中进行数据查询,以及插入、更新、删除等操作。在开始之前,确保在 config/database.php 文件中配置好了数据库连接。更多关于数据库配置的信息,请查看文档。
1、简介Laravel 包含了一个简单方法来填充数据库——使用填充类和测试数据。所有的填充类都位于 database/seeds 目录。填充类的类名完全由你自定义,但最好还是遵循一定的规则,比如可读性,例如UserTableSeeder等等。安装完 Laravel 后,会默认提供一个 DatabaseSeeder 类。从这个类中,你可以使用 call 方法来运行其他填充类,从而允许你控制填充顺序。
1、简介迁移就像数据库的版本控制,允许团队简单轻松的编辑并共享应用的数据库表结构,迁移通常和 Laravel 的结构构建器结对从而可以很容易地构建应用的数据库表结构。Laravel 的 Schema 门面提供了与数据库系统无关的创建和操纵表的支持,在 Laravel 所支持的所有数据库系统中提供一致的、优雅的、平滑的 API。
1、简介数据库查询构建器提供了一个方便的、平滑的接口来创建和运行数据库查询。查询构建器可以用于执行应用中大部分数据库操作,并且能够在支持的所有数据库系统上工作。注意:Laravel 查询构建器使用 PDO 参数绑定来避免 SQL 注入攻击,不再需要清除传递到绑定的字符串。2、获取结果集2.
1、简介Laravel 让连接多种数据库和运行查询都变得非常简单,不论使用原生 SQL、还是查询构建器,还是 Eloquent ORM。目前,Laravel 支持四种类型的数据库系统:MySQL Postgres SQLite SQL Server1.1 配置Laravel 让连接数据库和运行查询都变得非常简单。应用的数据库配置位于 config/database.php。
1、简介门面为应用的服务容器中的有效类提供了一个“静态”接口。Laravel 附带了很多门面,你可能在不知道的情况下正在使用它们。Laravel 的门面作为服务容器中的底层类的“静态代理”,相比于传统静态方法,在维护时能够提供更加易于测试、更加灵活的、简明且富有表现力的预语法。2、使用门面在 Laravel 应用的上下文中,门面就是一个提供访问容器中对象的类。
1、简介Laravel 的契约是指框架提供的一系列定义核心服务的接口。比如,Illuminate\Contracts\Queue\Queue 契约定义了队列任务需要的方法,Illuminate\Contracts\Mail\Mailer 契约定义了发送邮件所需要的方法。每一个契约都有框架提供的相应实现。比如,Laravel 提供了多个驱动的队列实现,邮件实现则由 SwiftMailer 驱动。
1、简介Laravel 服务容器是一个用于管理类依赖和执行依赖注入的强大工具。依赖注入听上去很花哨,其实质是通过构造函数或者某些情况下通过 set 方法将类依赖注入到类中。让我们看一个简单的例子:<?phpnamespace App\Jobs;use App\User;use Illuminate\Contracts\Mail\Mailer;use Illuminate\Contracts\Bus\SelfHandling;
1、简介服务提供者是所有 Laravel 应用启动的中心,你自己的应用以及所有 Laravel 的核心服务都是通过服务提供者启动。但是,我们所谓的”启动“指的是什么?通常,这意味着注册事物,包括注册服务容器绑定、时间监听器、中间件甚至路由。服务提供者是应用配置的中心。如果你打开 Laravel 自带的 config/app.
1、简介Laravel 应用默认的目录结构试图为不管是大型应用还是小型应用提供一个好的起点,当然,你可以自己按照喜好重新组织应用目录结构,Laravel 对类在何处被加载没有任何限制——只要 Composer 可以自动载入它们即可。2、根目录新安装的 Laravel 应用包含许多文件夹:app 目录包含了应用的核心代码;
1、简介当我们使用现实世界中的任何工具时,如果理解了该工具的工作原理,那么用起来就会得心应手,应用开发也是如此。当你理解了开发工具如何工作,用起来就会更加游刃有余。本文档的目标就是从一个更好、更高层面向你阐述 Laravel 框架的工作原理。通过对框架更全面的了解,一切都不再那么神秘,你将会更加自信的构建应用。
1、简介Blade 是 Laravel 提供的一个非常简单、强大的模板引擎,不同于其他流行的 PHP 模板引擎,Blade 在视图中并不约束你使用 PHP 原生代码。所有的 Blade 视图都会被编译成原生 PHP 代码并缓存起来直到被修改,这意味着对应用的性能而言 Blade 基本上是零开销。Blade 视图文件使用.blade.php文件扩展并存放在 resources/views 目录下。2、模板继承2.
1、基本使用视图包含服务于应用的 HTML 并将应用的控制器逻辑和表现逻辑进行分离。视图文件存放在 resources/views 目录。下面是一个简单视图:<!-- 该视图存放 resources/views/greeting.php --><html> <body> <h1>Hello, <?php echo $name; ?></h1> </body></html>
1、基本响应所有路由和控制器都会返回某种被发送到用户浏览器的响应,Laravel 提供了多种不同的方式来返回响应,最基本的响应就是从路由或控制器返回一个简单的字符串:Route::get('/', function () { return 'Hello World';});给定的字符串会被框架自动转化为 HTTP 响应。
1、访问请求通过依赖注入获取当前 HTTP 请求实例,应该在控制器的构造函数或方法中对 Illuminate\Http\Request 类进行类型提示,当前请求实例会被服务容器自动注入:<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use Illuminate\Routing\Controller;
1、简介将所有的请求处理逻辑都放在单个 routes.php 中肯定是不合理的,你也许还希望使用控制器类组织管理这些行为。控制器可以将相关的 HTTP 请求封装到一个类中进行处理。通常控制器存放在 app/Http/Controllers 目录中。2、基本控制器下面是一个基本控制器类的例子。所有的 Laravel 控制器应该继承自 Laravel 自带的控制器基类 Controller:<?
关注时代Java