laravel 4.2 eloquent: get all() + related column


laravel 4.2 eloquent: get all() + related column

假设我们有两个模型,它们之间的关系如下:

用户:

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

BookCode:

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

现在我们想从BookCode(如果没有则为空)中获取所有记录。这样的事情可能发生吗?我唯一想到的东西,似乎很慢(执行需要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的用户数组"一步走"?

设置需要即时加载的关系

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