You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel的LaRecipe扩展中传递变量渲染Markdown表格

问题原因

你的问题来自两处格式错误和逻辑缺失:

  1. Markdown表格要求每一行内容末尾必须有独立换行,你当前的自定义指令输出的行没有追加换行符,导致Markdown解析器无法识别为表格行
  2. 你示例中的标准Markdown表格格式本身错误,重复写了表头和分隔行,同时你的指令只取了第一条票种数据,没有遍历输出全部条目
  3. 若票种名称/描述中存在|特殊字符,会破坏表格分隔结构,需要提前转义

解决方案

1. 修正Blade自定义指令

遍历所有票种数据,每一行末尾追加换行符,同时对输出内容做转义处理:

Blade::directive('ticketTypes', function() {
    $ticketTypes = \App\Models\TicketType::get();
    $tableRows = '';
    foreach ($ticketTypes as $type) {
        // e()为Laravel内置转义方法,避免特殊字符破坏表格结构
        $tableRows .= e($type->name) . ' | ' . e($type->hash_id) . ' | $' . e($type->getReadablePrice()) . PHP_EOL;
    }
    return $tableRows;
});

2. 修正Markdown文档中的调用格式

删除多余的重复表头,保证表头、分隔行、指令调用之间都有正常换行,不要加额外缩进:

Name             | ID       | Description
:-               | :        | :-
@ticketTypes

异常排查

如果修改后依然无法正常解析,检查config/larecipe.php配置文件中的blade配置项,确认值为true,保证LaRecipe会优先解析Blade指令再渲染Markdown。


内容的提问来源于stack exchange,提问作者Uchivaru Kanda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 10:36:00