首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML代码不能工作在@if条件下叶片模板Laravel 9?

HTML代码不能工作在@if条件下叶片模板Laravel 9?
EN

Stack Overflow用户
提问于 2022-05-27 04:36:49
回答 1查看 518关注 0票数 2

我想在datatable服务器端显示条件如下:

如果STOK <5,则STOK将为红色

这是我的控制器:

代码语言:javascript
复制
<?php

namespace App\Http\Controllers;

use App\Models\ModelProduk;
use Illuminate\Contracts\View\View;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Yajra\Datatables\Datatables;
use Illuminate\Support\Facades\Blade;

class Produk extends Controller
{
  public function index(Request $r)
    {   
     if ($r->ajax()) {
            $dataProduk = ModelProduk::join('kategori', 'produk.idkat', '=', 'kategori.idkat')
                ->join('satuan', 'produk.idsat', '=', 'satuan.idsat')
                ->select('produk.*', 'kategori.namakat', 'satuan.namasat')
                ->get();
            return Datatables::of($dataProduk)
                ->editColumn('stok', 'produk.stokColumn')
                ->addColumn('action', 'produk.actionTableIndex')
                ->toJson();
        };

        return View('produk.index');
    }
}

问题解决了!!

只需要在我的控制器中添加->escapeColumns([]),所以我的控制器如下所示:

代码语言:javascript
复制
public function index(Request $r)
    {

        if ($r->ajax()) {
            $dataProduk = ModelProduk::join('kategori', 'produk.idkat', '=', 'kategori.idkat')
                ->join('satuan', 'produk.idsat', '=', 'satuan.idsat')
                ->select('produk.*', 'kategori.namakat', 'satuan.namasat')
                ->get();
           
            return Datatables::of($dataProduk)
                ->editColumn(
                    'stok',
                    'produk.stokColumn'
                )
                ->escapeColumns([]) 
                ->addColumn('action', 'produk.actionTableIndex')
                ->make(true);
        };
       
        return View('produk.index');
    }

这是stokColumn.blade.php

代码语言:javascript
复制
@if ($stok < 5)
<span class="p-1 py-2 bg-red-700 text-white font-bold rounded-lg block hover:bg-slate-500">{!! $stok !!} </span>
@else
    {!! $stok !!}
@endif

结果:

谢谢所有回答我问题的人

EN

回答 1

Stack Overflow用户

发布于 2022-05-27 04:51:08

尝试将$stok转换为整数,因为它可能是一个字符串。

代码语言:javascript
复制
@if ((int) $stok < 5)

或者使用浮点数可能更安全

代码语言:javascript
复制
@if (floatval($stok) < 5)

更新

由于$stok是一个集合,所以使用集合助手或将其转换为数组是个好主意。我建议你学习帮手,他们太棒了。文档

在您的情况下,您需要的是“计数”方法:

代码语言:javascript
复制
if ($stok->count() < 5)

如果您想使用数组

代码语言:javascript
复制
$stok->toArray();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72400511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档