2017-06-05 17 views
0

私は別のデータベースからモデル行の数を取得しようとしています。私は両方のデータベースを正常に設定しました。私の問題は、生のクエリを実行しようとするときに同じ接続を使用しているようには見えないということです。DB :: rawモデル接続を使用していません

コード:

class Lead extends Model 
{ 
    protected $connection = 'infused2'; 
    public $timestamps = false; 

    function campaignCount(Campaign $campaign) 
    { 
     $leads = $this->join('lead_history', 'leads.id', '=', 'lead_history.id_lead')->join('assignments', 'leads.id', '=', 'assignments.id_lead'); 

     if (!empty($campaign->lead_date_created_operand)) { 
      if ($campaign->leadDateCreatedOperand->name == 'day age') { 
       $leads->where(DB::raw("date_format(from_unixtime(lead_history.date_created), '%d-%m-%Y') = date_format(".strtotime($campaign->lead_date_created_value).", '%d-%m-%Y')")); 
      } 
      else if ($campaign->leadDateCreatedOperand->name == 'month age') { 
       $leads->where(DB::raw("date_format(from_unixtime(lead_history.date_created), '%m-%Y') = date_format(".strtotime($campaign->lead_date_created_value).", '%m-%Y')")); 
      } 
     } 

     if (!empty($campaign->lead_date_assigned_operand)) { 
      if ($campaign->leadDateAssignedOperand->name == 'day age') { 
       $leads->where(DB::raw("date_format(from_unixtime(assignments.date_assigned), '%d-%m-%Y') = date_format(".strtotime($campaign->lead_date_assigned_value).", '%d-%m-%Y')")); 
      } 
      else if ($campaign->leadDateAssignedOperand->name == 'month age') { 
       $leads->where(DB::raw("date_format(from_unixtime(assignments.date_assigned), '%m-%Y') = date_format(".strtotime($campaign->lead_date_assigned_value).", '%m-%Y')")); 
      } 
     } 

     return $leads->count(); 
    } 
} 

私はエラーDatabase [mysql] not configuredを取得しています。なぜこのようなことが起きているのですか?生のクエリにモデル接続を使用させるにはどうすればよいですか?

+0

あなたのapp/config/database.phpには、接続の下に「infused2」がありますか?おそらくinfused1とinfused2があります。 –

+0

はい私はそれをデータベース設定でセットアップしています。 – kjdion84

+0

キャンペーンはモデルですか?もしそうなら、それは別のデータベースにありますか?回答が「はい」の場合は、Campaignの$ connection = 'db_name'も保護されていますか? –

答えて

1

それを手に入れた操作を行う必要があるかもしれません。

$query = DB::connection($this->connection)->table($this->getTable()); 

    if (!empty($campaign->lead_date_created_operand)) { 
     $query->join('lead_history', 'lead_history.id_lead', '=', 'leads.id'); 

     if ($campaign->leadDateCreatedOperand->name == 'day age') { 
      $query->whereRaw("date_format(from_unixtime(lead_history.date_created), '%d-%m-%Y') = date_format(from_unixtime(".strtotime('-'.$campaign->lead_date_created_value)."), '%d-%m-%Y')"); 
     } 
     else if ($campaign->leadDateCreatedOperand->name == 'month age') { 
      $query->whereRaw("date_format(from_unixtime(lead_history.date_created), '%m-%Y') = date_format(from_unixtime(".strtotime('-'.$campaign->lead_date_created_value)."), '%m-%Y')"); 
     } 
    } 

    if (!empty($campaign->lead_date_assigned_operand)) { 
     $query->join('assignments', 'assignments.id_lead', '=', 'leads.id'); 

     if ($campaign->leadDateAssignedOperand->name == 'day age') { 
      $query->whereRaw("date_format(from_unixtime(assignments.date_assigned), '%d-%m-%Y') = date_format(from_unixtime(".strtotime('-'.$campaign->lead_date_assigned_value)."), '%d-%m-%Y')"); 
     } 
     else if ($campaign->leadDateAssignedOperand->name == 'month age') { 
      $query->whereRaw("date_format(from_unixtime(assignments.date_assigned), '%m-%Y') = date_format(from_unixtime(".strtotime('-'.$campaign->lead_date_assigned_value)."), '%m-%Y')"); 
     } 
    } 

    return $query->count(); 
0

構成に応じて、あなたは

DB::connection('infused2')... 
関連する問題