php - 在 Laravel 中处理常用 sql 信息的最佳方法

标签 php mysql laravel laravel-4

处理经常需要的 SQL 信息(在我的示例中为“真实用户名”)的最佳且最节省资源的方法是什么?

我的模型:

public function pageModification()
{
    return $this->hasMany('PageModification','page_id','id');
}

public static function getPages($id)
{
    return Page::with('pageModification')->where('page_id', '=', $id)->get();
}

我的结果看起来像这样:

array(36) [
'id' => integer 64
'title' => string (11) "lorem ipsum"
'content' => string (11) "lorem ipsum"        
'post_page_modification' => array(11) [
    array(3) [
        'id' => integer 34
        'post_id' => integer 64
        'user_id' => integer 12

        .....
    ]

现在通过 user_id 从我的用户表中获取真实用户名(名字、姓氏)的最佳方法是什么? 一次调用最多可以出现 100 个 user_id,并且大多数/经常是相同的 user_id。 我是否需要调用“getUserNameById()”这样的函数 100 次才能获取真实姓名?

最佳答案

我发现您已经在使用急切加载,现在准备好让您大吃一惊。

http://laravel.com/docs/4.2/eloquent#eager-loading

” 您甚至可以急切加载嵌套关系:

$books = Book::with('author.contacts')->get();

在上面的示例中,作者关系将被立即加载,并且作者的联系人关系也将被加载。 ”

因此,只需确保您的关系设置正确,然后您也可以立即加载它。

返回Page::with('pageModification.user')->where('page_id', '=', $id)->get();

关于php - 在 Laravel 中处理常用 sql 信息的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27194405/

相关文章:

php - MySQL 插入在一次提交中发生两次

php - 使用 PHP 处理 XML 中的特殊字符

php - 拉维尔 5 : Enable laravel-debugbar

php - 使用 Laravel 5.2 通过 Ajax 登录表单

php - laravel undefined variable 保护

php - CKEditor 输出为 BBcode 格式而不是 HTML

mysql - 拆分具有多个值的单个 VARCHAR 字段,然后分别插入它们

mysql - 如何在同一天的 mySQL 中只获取值的总和

MySQL获取日期大于8个月的记录

php - Laravel Passport - tokensExpireIn、refreshTokensExpireIn 和personalAccessTokensExpireIn 之间有什么区别