Php 替换从数据库检索的字符串-Laravel&;购物

Php 替换从数据库检索的字符串-Laravel&;购物,php,laravel,Php,Laravel,我已经创建并注册了我的Shopify网络钩子,这些钩子工作得非常好。当客户下订单时,会向客户发送sms通知 sms通知内容保存在数据库中,并在触发web挂钩以发送sms时检索。在数据库中,sms通知内容保存为“感谢您下订单%order\u number%” 当sms发送到客户端时,字符串%order\u number%应替换为实际订单号,即“感谢您下订单13” 这就是我现在拥有的 控制器 public function orderPlaceWebhook(Request $request) {

我已经创建并注册了我的Shopify网络钩子,这些钩子工作得非常好。当客户下订单时,会向客户发送sms通知

sms通知内容保存在数据库中,并在触发web挂钩以发送sms时检索。在数据库中,sms通知内容保存为“感谢您下订单%order\u number%”

当sms发送到客户端时,字符串
%order\u 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");
}
如何将
$Message
中的字符串
%order\u number%
替换为来自
$order\u number
的值


PS:提前谢谢你。laravel初学者

将模板保留在数据库中有什么特殊原因吗? 使用翻译文件不是更好吗?如果以后需要支持不同的语言,它会更容易

因此,您可以在翻译文件中包含如下消息:

'sms_template' => 'Thank you for placing order :order'
在Laravel中,然后使用

trans('MESSAGE_FILE_NAME.sms_template', ['order' => $order_number]);
用翻译文件替换消息\u文件\u名称

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

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

为什么不干脆做
$Message=“感谢您下订单$order\u number”为什么不在$message中使用$order\u number?@Phil,所以在将模板保存到我的数据库时,我应该将其保存为“感谢您下订单$order\u number”?`我只在代码中显示$Message内容,让您知道它是如何存储在数据库中的。如果用户想要更改
sms_模板的内容
,该怎么办?因为很多用户都在使用这个系统。用户的新内容会在哪里?我认为它是基于系统的模板,而不是基于用户的模板。因此,如果它应该是自定义消息,则使用
str_replace
功能执行您想要的操作。