0

如何在laravel中分配这样的变量值?

$gen_jsons = '{"to":"' . $phone . '","message":"' . $message . '"},';
$json_smsdata = "$gen_jsons, $json_smsdata";

此代码在 php 中运行,但我在 laravel 中遇到错误。错误: Undefined variable: json_smsdat

这是控制器中的完整代码。我想使用此功能发送短信。这段代码在 php 中工作,但我不知道为什么它在 laravel 控制器中不起作用。

public function sendSMS(Request $request)
    {
        $users = User::all();

        foreach ($users as $user) {
            
            $name = $user->name;

            $phone = $user->phone_number;

            $message = rawurlencode("Hi $name, Thanks for using our app!
                                    Regards, Niloy
                                   ");
            $genjsons = '{"to":"' . $phone . '","message":"' . $message . '"}';

            $jsonsmsdata = "$genjsons, $jsonsmsdata";
            $jsonsmsdata = rtrim($jsonsmsdata, ',');
        }

        $smsdata = '[' . $genjsons . ']';

//        echo $smsdata;

         $token = 'asedfasdfasdf';
         $smsdata = $smsdata;

         $url = 'http://api.greenweb.com.bd/api2.php';

         $data = [
             'smsdata' => "$smsdata",
             'token' => "$token"
         ];

         $ch = curl_init();
         curl_setopt($ch, CURLOPT_URL, $url);
         curl_setopt($ch, CURLOPT_ENCODING, '');
         curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
         $smsresult = curl_exec($ch);

//        Result
         echo $smsresult;

//        Error Display
         echo curl_error($ch);

         return redirect('/');
    }

如何解决这个问题?

谢谢你的时间。

4

1 回答 1

1

只需像这样定义它:

$gen_jsons = '{"to":"' . $phone . '","message":"' . $message . '"},';
$json_smsdata = '';
$json_smsdata = "$gen_jsons, $json_smsdata";

但由于它是 JSON,所以这是一种不好的做法。也许你需要像这样对函数进行 jsonencode:

$gen_jsons = ['to'=>$phone,'message'=>$message];
$json_smsdata[]= $gen_jsons;
$json_smsdata[]= $json_smsdata;
$result = json_encode($json_smsdata);

更新:

$json_smsdata = [];
foreach ($users as $user) {
    
    $name    = $user->name;
    $phone   = $user->phone_number;
    $message = rawurlencode("Hi $name, Thanks for using our app!
                            Regards, Niloy
                           ");
    $json_smsdata[]= ['to'=>$phone,'message'=>$message];
}

$smsdata = json_encode($json_smsdata);

现在$smsdata是短信的JSON。

于 2020-10-16T01:21:51.723 回答