【问题标题】:Laravel - change specific tr bgcolor in views using controller based on parameterLaravel - 根据参数使用控制器更改视图中的特定 tr bgcolor
【发布时间】:2017-12-07 09:12:40
【问题描述】:

我正在尝试根据我的参数更改表格行的颜色。这是我的代码:

AdminController.php

public function table_row(){

    if ($walk->is_paid && $walk->is_completed) {
        $highlightClass = 'bg-success';
    }
    elseif (empty($walk->is_paid) && $walk->is_completed) {
        $highlightClass = 'bg-warning';
    }
    elseif ($walk->is_cancelled) {
        $highlightClass = 'bg-danger';
    }
    return view('walks', compact('$highlightClass'));
} 

walks.blade.php

<tr class="{{ $highlightClass }}">

它没有工作.. :(

这是我视图中的表格图像:

enter image description here

【问题讨论】:

  • 你添加css了吗?
  • 它是否会进入不存在的else 条件?
  • 我没有为此编写任何 css,我只使用引导类。 @Priya:没有。
  • 尝试在刀片中简单地打印 {{ $highlightClass }} 并查看那里的输出?

标签: css laravel blade


【解决方案1】:

这应该是向视图发送数据的方式。以简洁的方式删除$

public function table_row(){
    $highlightClass = "";

    if ($walk->is_paid && $walk->is_completed) {
        $highlightClass = 'bg-success';
    }
    elseif (empty($walk->is_paid) && $walk->is_completed) {
        $highlightClass = 'bg-warning';
    }
    elseif ($walk->is_cancelled) {
        $highlightClass = 'bg-danger';
    }

    return view('walks', compact('highlightClass')); // not $highlightClass
}

参考:https://www.w3schools.com/php/func_array_compact.asp

// walks.blade.php

<tr class="{{$highlightClass or ''}}">

【讨论】:

  • 我出现错误:未定义变量:highlightClass(视图:C:\wamp64\www\zenporto-web\app\views\walks.blade.php)
  • 是的,有时它会变成其他情况。应该使用空初始化来验证。 $highlightClass = ''; Ln:2
  • else{ return view('walks'); } 刚刚添加了 else 但发生了同样的错误。
  • 您也可以这样做。但是由于您使用的是$highlightClass 并且您只有一个模板,因此不建议使用两个返回语句。
  • 能否请您尝试一下现在已经给出解决方案的方法并告诉您是否发生任何错误?鉴于您正在使用 $highlightClass 并且您只有一个模板可以搜索该变量。并且您正在返回 walks 模板而没有所需的数据。 return view('walks'); 不会工作。
【解决方案2】:

只需传递函数:

public function table_row(){
    $highlightClass = "";

    if ($walk->is_paid && $walk->is_completed) {
        $highlightClass = 'bg-success';
    }
    elseif (empty($walk->is_paid) && $walk->is_completed) {
        $highlightClass = 'bg-warning';
    }
    elseif ($walk->is_cancelled) {
        $highlightClass = 'bg-danger';
    }

   return View::make('walks')
                        ->with('highlightClass', $highlightClass)
}

【讨论】:

    【解决方案3】:

    只需从压缩包中删除 $ 并尝试

    return view('walks', compact('highlightClass'));

    并了解紧凑型在 laravel 中的实际工作方式:- [https://www.quora.com/What-does-compact-do-in-Laravel][1]

    【讨论】:

      【解决方案4】:

      你为什么不制定一个标准来将数据发送到查看文件。创建一个数组并使用键在该数组中添加所有数据(您要发送到查看文件),并使用查看文件上的键获取数据。

      public function table_row(){
        $data = array();
        $data['highlightClass'] = "";
        if ($walk->is_paid && $walk->is_completed) {
          $data['highlightClass'] = 'bg-success';
        }
        elseif (empty($walk->is_paid) && $walk->is_completed) {
          $data['highlightClass'] = 'bg-warning';
        }
        elseif ($walk->is_cancelled) {
          $data['highlightClass'] = 'bg-danger';
        }
        return view('walks',$data); 
      } 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多