处理Laravel中经常使用的sql-informations的最佳方法

时间:2014-11-28 18:43:27

标签: 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从我的usertable获取真实用户名(名字,姓氏)的最佳方法是什么? 一次调用最多可以发生100个user_id,而且大部分/通常是相同的user_id。 我有100次调用像“getUserNameById()”这样的函数来获取真实姓名吗?

1 个答案:

答案 0 :(得分:0)

我看到你已经在使用急切的加载,现在已经准备好让你的思绪受到欢迎。

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

" 您甚至可能急于加载嵌套关系:

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

在上面的示例中,作者关系将被急切加载,并且还将加载作者的联系人关系。 "

因此,请确保正确设置关系,然后您也可以急切加载。

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