处理经常需要的 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/