*my code is *
$influencer_email= $input['influencer_email'];
log::info($influencer_email);
$influencer_name= DB::table("addprofiles")->whereIn('user_email',$influencer_email)->pluck('user_name');
when i apply this code i got empty array
$influencer_email_array = explode(',', $influencer_email);
log::info($influencer_email_array); and [2024-01-09 06:32:22] local.INFO: array (
0 => '["admins@gmail.com"]',
) but when i apply $influencer_name= DB::table("addprofiles")->whereIn('user_email',$influencer_email_array)->get();
log::info("after param influencer_name");
log::info($influencer_name); even email admins@gmail.com is available in database but because of quotes'["admins@gmail.com"]'
reason
after explode i got output
$influencer_email_array = explode(',', $influencer_email);
[2024-01-09 06:32:22] local.INFO: array (
0 => '["admins@gmail.com"]',
)
It seems like the email addresses are being passed as a string within an array. Instead of using explode directly, you might need to adjust how you're passing the email addresses to ensure they are treated as separate strings.
If your input is coming as a JSON-encoded string, you can use json_decode to convert it into an array. For example:
solution
$influencer_email_array = json_decode($influencer_email, true);
log::info($influencer_email_array);
$influencer_name= DB::table("addprofiles")->whereIn('user_email',$influencer_email_array)->distinct()->pluck('user_name');
log::info("after param influencer_name");
log::info($influencer_name);
after json decode i got output
$influencer_email_array = json_decode($influencer_email, true);
array (
0 => 'admins@gmail.com',
)
output
log::info($influencer_name);
["admins"]
Top comments (0)