【问题标题】:Slim/Twig removing apostrophe and text after it?Slim/Twig 在它之后删除撇号和文本?
【发布时间】:2015-08-17 00:18:36
【问题描述】:

所以我使用 twig 和 slim 以及你的普通 PHP 来做一些分页。预分页,slim 没有从链接中删除空格/撇号,但现在可以了。感谢您提供任何帮助,希望这不是显而易见的愚蠢行为。

相关代码如下所示。如果您需要更多,请询问我。

路线

$results = $mysqli_conn->query("SELECT * FROM businesses ORDER BY id ASC LIMIT $page_position, $item_per_page");

//Display records fetched from database.
while($row = $results->fetch_assoc()) {
  $name = $row['name'];
  $link_bprofile = $app->urlFor('business.profile', array('name' => $name));
  $link_adminedit = $app->urlFor('admin.business.edit', array('business' => $name));
  $link_admindelete = $app->urlFor('admin.business.delete', array('business' => $name));

  $endResult .= '<tr>';
  $endResult .=  "<td>[<a href='$link_bprofile'>Profile</a>]</td>";
  $endResult .=  "<td>$name</td>";
  $endResult .=  "<td>[<a href='$link_adminedit'>Edit</a>]</td>";
  $endResult .=  "<td>[<a href='$link_admindelete'>Remove</a>]</td>";
  $endResult .=  "<td>$name</td>";
  $endResult .= '</tr>';
}
## End displaying Records ##

$app->render('/business/all.php', [
  'businesses' => $businesses,
  'business' => $app->business,
  'pagination' => $endResult,
  'links' => $app->business->pagination($total_pages, $item_per_page, $currentPage, $page_url)
]);

查看

<div class="container-fluid main-container">
<div class="col-md-12 content">
    <div class="panel panel-default">
        <div class="panel-heading"> Businesses </div>
        <div class="panel-body text-center">
          <table class="table table-striped table-hover" style="text-align: center;" name="businesses_tab" id="businesses_tab">
                <thead>
                    <tr>
                <th style="text-align: center;"></th>
                        <th style="text-align: center;">Name</th>
                        <th style="text-align: center;">Upvotes</th>
                        <th style="text-align: center;">Downvotes</th>
                        <th style="text-align: center;">Reviews</th>
                    </tr>
                </thead>
                <tbody>
              {{ pagination | raw }}
                </tbody>
            </table>
          <ul class="pagination">
            {{ links | raw }}
          </ul>
        </div>
    </div>
</div>

编辑

我做了更多的审查,发现了一些有趣的东西; Slim 将链接(以纯文本形式查看)输出为“/dev/website/public/b/McDonald's”,但查看链接本身时没有撇号和“s”。这有帮助,但我仍然找不到解决此问题的方法。

【问题讨论】:

  • 你能清楚地说明你的问题是什么吗?我认为它不清楚你在问什么。
  • @Subash 当从我的数据库中打印出所有信息时,它会在页面上正确显示名称,但配置文件的链接正在删除撇号及其后面的任何文本
  • 看看urlFor()到底做了什么并尝试调试它。
  • @DeDee 我在最后更新了我的帖子,所以请检查一下...我也查了一下:“Slim 应用程序的 urlFor() 方法允许您为命名路由动态创建 URL因此,如果要更改路由模式,您的 URL 将自动更新而不会破坏您的应用程序。” - 引用自官方 slim 文档
  • 如果您的应用程序的特定部分中的链接有问题,您可以使用老派调试,只需备份定义urlFor() 的文件并编辑原始urlFor() 添加您自己的日志记录功能函数传递或处理保存名称的变量,然后您应该看到它丢失撇号的确切位置。您可以使用echofwrite() 或任何您喜欢的方式。它通常会导致对其他地方明显遗漏的东西的启发。

标签: php twig slim html-escape-characters


【解决方案1】:

我已经为我的问题创建了一个简单的解决方案...将业务 ID 作为参数而不是其名称。这使得它不会因为转义字符或任何类似的东西而发出链接。

感谢所有提供良好信息并试图提供帮助的人。 :D

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    相关资源
    最近更新 更多