Laravel Telegram通知:如何添加<br>标签实现商品标题换行显示
解决Laravel Telegram通知的换行问题
嘿,我之前也踩过这个坑!你用\n或者\r\n没用,是因为Telegram默认把通知内容当成纯文本处理,不会解析这些转义字符。要实现换行,得先让通知支持HTML或者Markdown格式才行,下面给你两种可行的方案:
方案一:使用HTML格式(推荐,直接用<br>标签)
修改你的代码,添加->parseMode('HTML')开启HTML解析,然后在content里用<br>来换行:
public function toTelegram($product) { return TelegramMessage::create() ->to('@xxxxx') ->parseMode('HTML') // 关键:开启HTML解析模式 ->content('New Product is here 😍<br>' . $product->title) // <br>会被解析成换行 ->button('Shop Now', 'http://domain.co/store/'. $product->slug); }
方案二:使用Markdown格式
如果你更习惯Markdown语法,可以开启MARKDOWN解析模式,用两个连续的换行(\n\n)来实现新行:
public function toTelegram($product) { return TelegramMessage::create() ->to('@xxxxx') ->parseMode('MARKDOWN') // 开启Markdown解析模式 ->content("New Product is here 😍\n\n" . $product->title) // 两个换行实现段落分隔 ->button('Shop Now', 'http://domain.co/store/'. $product->slug); }
原理很简单:只有当你指定了parseMode,Telegram才会识别并解析对应的格式标记,不然所有内容都会被当成纯文本输出,转义字符和标签自然就失效啦。
内容的提问来源于stack exchange,提问作者mafortis
相关产品推荐
相关产品推荐

