替换从数据库检索的字符串-Laravel和Shopify

时间:2018-11-05 10:05:10

标签: php laravel

我已经创建并注册了可以正常运行的Shopify网络挂钩。当客户下订单时,将向该客户发送短信通知。

短信通知内容保存在数据库中,并在触发要发送短信的Web挂钩时进行检索。在数据库中,短信通知内容另存为“感谢您下达订单%order_number%”

将短信发送给客户端时,应将字符串%order_number%替换为实际的订单号,以“谢谢您下订单13”

这就是我现在拥有的

控制器

public function orderPlaceWebhook(Request $request)
{

     //get order details
     $order = $request->getContent();   
     $order = json_decode($order, true);
     $order_number = $order['number'];

     //fetched sms notification template from db
     $Message = SMS::where('site', Auth::user()->site);
    //message content saved is "Thank you for placing order %order_number%"

     //send sms
     $baseurl = "https://apps.domain.com/smsapi";
     $query = "?key=$keyto=$number&msg=$Message&sender_id=$sender";
     $final_uri = $baseurl.$query;
     $response = file_get_contents($final_uri);
     header ("Content-Type:text/xml");
}

如何用来自%order_number%的值替换$Message中的字符串$order_number

PS:谢谢您。 laravel初学者

1 个答案:

答案 0 :(得分:1)

将模板保留在数据库中是否有特殊原因? 使用翻译文件会更好,以后,如果您需要支持其他语言,会容易得多。

因此您可以在翻译文件中输入以下消息:

'sms_template' => 'Thank you for placing order :order'

在Laravel中使用

trans('MESSAGE_FILE_NAME.sms_template', ['order' => $order_number]);

用您的翻译文件替换MESSAGE_FILE_NAME。

如果您仍然需要使用普通的旧PHP方式,请执行以下操作:

str_replace("%order_number%", $order_number, $Message);