【问题标题】:Bootstrap button with a badge counter not working带有徽章计数器的引导按钮不起作用
【发布时间】:2020-03-17 07:54:25
【问题描述】:

我有一个带有徽章计数器的 Bootstrap 按钮(与链接相关联的项目数量的数字指示器)。

<a href="{{ route('events.index', ['group_id' => $group->id])}}" class="btn btn-sm btn-primary">Events <span class="badge badge-light">{{ $events = Event::where(['status' => 0])->count() }}</span></a>

链接可以正常工作,但徽章计数器无法正常工作。它应该检查数据库中有多少events,并在徽章计数器上显示该数字。所以,这行有问题:

{{ $events = Event::where(['status' => 0])->count() }}

我尝试添加到我的事件控制器

 public function events()
    {
        return view('groups.index', [
            'count' => Event::where(['status' => 0])->count(),
        ]);
    }

并致电{{ $count }}

但我收到此错误

Call to a member function count() on null (View: C:\laragon\www\version2\resources\views\groups\index.blade.php)

注意:按钮需要统计事件的数量,但按钮本身会显示在 groups.index 页面上(为了清楚起见)!

【问题讨论】:

  • Event 是一个 Eloquent 模型吗?
  • 哎呀,我不确定,我对这个很陌生,我的朋友对它的一部分进行了编码。我该如何检查?
  • 它应该是类 Event 扩展 Illuminate\Database\Eloquent\Model
  • 是的,在我的事件模型中我有use Illuminate\Database\Eloquent\Model;
  • 好的,现在转储您的数据。在返回视图之前,请尝试 dd(Event::where(['status' =&gt; 0])-&gt;get())

标签: mysql laravel bootstrap-4


【解决方案1】:

在控制器中提取逻辑。

use \App\Event; // use your model

public function someMethod()
{
    // other code

    return view('some.view', [
        'count' => Event::where(['status' => 0])->count(),
    ]);
}

查看:

<a href="{{ route('events.index', ['group_id' => $group->id])}}" class="btn btn-sm btn-primary">Events <span class="badge badge-light">{{ $count }}</span></a>

【讨论】:

  • 谢谢。我收到一个错误(请参阅上面修改后的描述)
  • 是否有效。我似乎与以下问题相同。
  • 首先,从视图中提取逻辑。其次,提到了use,这可能是个问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-28
  • 1970-01-01
相关资源
最近更新 更多