2016-09-21 67 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)。你可以发布输出吗? –