2016-09-21 79 views
0

我很樂意使用查詢生成器從數據庫中獲取用戶的電子郵件地址,並向他們發送電子郵件,但到目前爲止,我一直堅持這幾天。Laravel 5.2將變量傳遞給查詢生成器

公共職能postSearchAction(請求$要求){

 $data = array(
      'service' => $request->get('service'), 
      'location' => $request->get('location'), 
      'allProviders' => $request->get('allProviders'), 
      'date' => $request->get('date'), 
      'optional_skills' => $request->get('optional_skills'), 
      'landmark_homepage' => $request->get('landmark_homepage'), 
      'name' => Auth::user()->name, 
      'userEmail' => Auth::user()->email, 
      'requesterMobile' => Auth::user()->phone_number 
     ); 




     $email = DB::table('users')->where('main_service', 'LIKE', '%'.$data['location'].'%') 
      ->where('city_service', 'LIKE', '%'.$data['location'].'%') 
      ->pluck('email'); 




     To send emails 

     \Mail::send('auth.emails.serviceProviders', $data, function($message) use ($data) 
     { 
       $message->to($email, 'oluyemi')->subject('Test'); 
     }); 


    } 

現在我試圖用dd($郵件),但該方法返回一個空數組。 我認爲值得一提的是,我一旦將查詢生成器中的變量更改爲期望值,一切正常。

有人應該請幫忙,不知道什麼是做錯了。我真的需要使用這些變量。

感謝您的幫助。

+0

你確定'$ data ['location']'有一個值嗎?有沒有錯誤? –

+0

@timenomad感謝您的回覆.....是的,如果我做dd($ data ['location'])它會返回值。 dd($ email)返回[] – yemiwebby

+0

$ email = DB :: table('users') - > where('main_service','LIKE','%'。$ data ['service']。'%') - > where('city_service','LIKE','%'。$ data ['location']。'%') - > pluck('email'); – yemiwebby

回答

0

請向我們展示原始SQL查詢,以便我們可以看到有什麼問題。
的$電子郵件查詢後,放入:

DB::enableQueryLog(); 
dd(DB::getQueryLog()); 

這將是最後一個項目。

OR

添加->toSql()而不是->pluck()和DD()它。

+0

我剛剛試過這個$ email = DB :: table('用戶') - > where('main_service','LIKE','%'。$ data ['service']。'%') - > where('city_service','LIKE','%'。$ data ['location']。'%') - > tosql(); dd($ email);.並從''用戶'選擇*,其中'main_service' LIKE?和'city_service' LIKE?「 – yemiwebby

+0

請注意,它是Sql(大寫S)。你可以發佈輸出嗎? –