在我的示例“真实用户名”中,处理常用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()”这样的函数来获取真实姓名吗?
答案 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();