laravel 4.2 eloquent:获取all()+相关列

时间:2016-10-27 15:50:46

标签: php laravel-4 laravel-4.2

假设我们有2个模型,具有以下关系:

用户:

public function BookCode() {
    return $this->hasOne( 'BookCode' );
}

的bookcode:

public function User() {
    return $this->belongsTo( 'User' );
}

现在我们想要将来自User的所有记录从BookCode获取book_code(如果没有则为空)作为数组。有可能吗?我出现的唯一一件事似乎非常缓慢(需要30秒才能执行),是:

$users = User::all();

foreach( $users as $user ) {
    $users_array[] = array(
        $user->first_name,
        $user->last_name,

        // this is very slow
        $user->BookCode['book_code'],
        $user->created_at,
        $user->updated_at,
    );
}

是否可以“一次性”获取具有相关book_codes的用户数组?现在5小时内找不到任何解决方案。

1 个答案:

答案 0 :(得分:2)

设置应该加载的关系。

$users = User::with('BookCode')->get();