2013-05-09 14 views
2

我有這個在我接觸模型:如何分配列名的Laravel PAGINATE()方法

public static function contacts($perPage = 10) 
{ 
    $order_type = '.desc'; 
    $order = Session::get('contact.order', 'first_name' . $order_type); // Set the default order to created_at DESC 
    $order = explode('.', $order); 

    $columns = array(
     'contacts.id as id', 
     'contacts.first_name as first_name', 
     'contacts.last_name as last_name', 
     'contacts.telephone_number as telephone_number', 
     'contacts.email as email', 
     'accounts.company_name as account', 
     'users.first_name as am_first_name', 
     'users.last_name as am_last_name' 
    ); 

    $contacts = DB::table('contacts') 
     ->leftJoin('accounts', 'account_id', '=', 'accounts.id') 
     ->leftJoin('account_managers', 'accounts.account_manager_id', '=', 'account_managers.id') 
     ->leftJoin('users', 'user_id', '=', 'users.id') 
     ->orderBy($order[0], $order[1]) 
     ->paginate($perPage, $columns); 

    return $contacts; 
} 

這不是分配我的「作爲」語句來我想要的列,這意味着我得到'列first_name不明確。

你不能用Paginate方法做到這一點嗎?

乾杯

回答

9

您需要使用select($columns) ...

$contacts = DB::table('contacts') 
    ->select($columns) 
    // other bits 
    ->paginate($perPage); 

由於Specifying A Select Clause

中提到