【问题标题】:How do to display an icon in an if statement?如何在 if 语句中显示图标?
【发布时间】:2019-12-21 19:57:43
【问题描述】:

如果 key_product 的值等于 1,我正在尝试显示一个图标。

这是我尝试过的控制器。

return DataTables::of($products)

->editColumn('key_product', function ($row) {
           if('key_product' == 1){
                '<class="btn btn-info btn-circle"><i class="fa fa-pencil"></i>';
           }
            return ucfirst($row->key_product);
        })    

我没有收到任何错误,但我仍然得到数据库值而不是图标。

【问题讨论】:

  • 对 Laravel 不是很熟悉,但看起来你并没有用 ` `。你不需要返回/分配它吗?
  • 尝试理解if('key_product' == 1){

标签: javascript laravel laravel-5 datatables


【解决方案1】:

您缺少 html 内容的返回语句,并且 html 内容将被转义,因此您必须将该列添加到 rawColumns

来自docs

默认情况下,Laravel DataTables 通过转义保护我们免受 XSS 攻击 我们所有的输出。如果您要呈现 html 内容, 请使用 rawColumns api。

类似这样的:

return DataTables::of($products)
    ->editColumn('key_product', function ($row) {
        if ($row->key_product == 1) {
            return '<button class="btn btn-info btn-circle"><i class="fa fa-pencil"></i></button>';
        }
        return ucfirst($row->key_product);
    })
    ->rawColumns(['key_product']);

【讨论】:

  • 非常感谢您的回复。现在只是在 if 语句中返回 html 而不是图标。
  • 我更新了答案,html 不完整。我在图标周围添加了一个按钮,因为 &lt;class="btn btn-info btn-circle"&gt; 是无效的 html。
  • 谢谢,但仍然无法正常工作。它在表格中而不是图标中显示 HTML 代码。
  • 我添加了我所看到的图像
  • 您是否将key_product 添加到原始列中?
猜你喜欢
  • 1970-01-01
  • 2018-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多