幸福飞过海 - laravel https://fengqi.me/tag/laravel/ [原创] Yaf 使用 Eloquent ORM 做数据层 https://fengqi.me/php/386.html 2015-06-05T15:35:00+00:00 Yaf 默认是不提供数据层处理功能的, 需要自行扩展.Eloquent ORM 是 Laravel 的内置 ORM 功能非常强大, 而且已经独立成组建, 任何项目都可以选择使用它.目前最新版是5.0.28, 主要版本是跟随 Laravel 更新的, 下一个版本是 5.1 LTS 版, 非常棒.在进行集成前, 需要开启 Yaf 的 namespace, 确保 php.ini 有如下配置:yaf.use_namespace=1为了方便管理, 建议使用 Composer 管理扩展, 以下示例均使用 Composer.安装 Eloquent ORM, 在项目根目录创建 composer.json, 内容如下:{ "require": { "illuminate/database": "5.0.*", "illuminate/events": "5.0.*", "symfony/debug": "2.6.*", "symfony/var-dumper": "2.6.*" } }然后运行 composer update 下载代码, 并在 index.php 引入 vendor 目录下的 autoload.php 速度不理想可尝试我共享的镜像 http://composer.fengqi.me.<?php // 程序启动时间 define('APP_START_TIME', microtime(true)); // 程序跟目录 define('ROOT_PATH', realpath(__DIR__.'/../')); // 加载 Composer require ROOT_PATH.'/vendor/autoload.php'; // 启动程序 $app = new Yaf\Application(ROOT_PATH."/config/application.ini"); $app->bootstrap()->run();配置数据库信息, application.ini 增加以下内容:; database database.driver = mysql database.host = 127.0.0.1 database.database = yaf database.username = root database.password = 123456 database.port = 3306 database.charset = utf8 database.collation = utf8_unicode_ci database.prefix = ""这里使用 MySQL 作为示例, Eloquent 支持 MySQL, Postgres, SQL Server, SQLite.[...] [总结] Laravel 如何在预加载试控制返回的字段 https://fengqi.me/php/261.html 2014-12-16T11:52:00+00:00 参考链接:Get specific columns using “with()” function in Laravel EloquentLaravel 的预加载使用方式是:Post::with('user', 'user.extend')->orderBy('id', 'DESC')->paginate(10, array('id', 'content')); 拿到用户和扩展信息太方便了,但是问题是返回的数据太多了,站在一个强迫症的角度简直无法容忍啊。控制返回的字段有两种方法,一个是在 model 里定义关系时指定好字段,但是不太灵活,还一种是在 ->with() 这里做文章:Post::with(array( 'user' => function($query) { $query->select('id', 'name'); }, 'user.extend' => function($query) { $query->select('birth', 'intro'); }, ))->paginate(10, array('id', 'content')); 就这样。既然可以指定字段那还可以做一些别的什么呢???