在仪表板中显示计数器结果

时间:2021-02-24 14:39:59

标签: laravel

我想用 Laravel 8 创建一个 dasboard。我想统计数据库中的所有票证并在仪表板中显示数量。不幸的是它不起作用你有什么想法吗?

控制器代码


namespace App\Http\Controllers;


use App\Models\Ticket;
use Illuminate\Http\Request;


class DashboardController extends Controller
{

    public function index()
    {
      //
        $ticketsCount = Ticket::count();     
        return view('dashboard.index', compact('ticketsCount'));
    }
} 

查看代码

<div class="col-lg-3 col-6">
            <!-- small box -->
            <div class="small-box bg-info">
              <div class="inner">
                <h3>{{ $ticketsCount->count() }}</h3>

                <p>Open Tickets</p>
              </div>
              <div class="icon">
                <i class="ion ion-bag"></i>
              </div>
              <a href="{{ url('tickets') }}" class="small-box-footer">More info <i class="fas fa-arrow-circle-right"></i></a>
            </div>
          </div> 

3 个答案:

答案 0 :(得分:2)

从您的视图中删除 ->count(),您已经将其计入控制器 $ticketsCount = Ticket::count();

视图代码:

<div class="col-lg-3 col-6">
            <!-- small box -->
            <div class="small-box bg-info">
              <div class="inner">
                <h3>{{ $ticketsCount }}</h3>

                <p>Open Tickets</p>
              </div>
              <div class="icon">
                <i class="ion ion-bag"></i>
              </div>
              <a href="{{ url('tickets') }}" class="small-box-footer">More info <i class="fas fa-arrow-circle-right"></i></a>
            </div>
          </div> 

答案 1 :(得分:1)

如我所见,您的路由器返回视图文件,但未进入控制器。

Route::get('/dashboard', function () {
    return view('dashboard.index');
});

把你的路由器改成(Laravel 8 之前的版本)

Route::get('/dashboard', 'DashboardController@index');

Laravel 8 之后

use App\Http\Controllers\DashboardController;

Route::get('/dashboard', [DashboardController::class, 'index']);

Docs

答案 2 :(得分:0)

我试图获取视图上显示的用户数量。不幸的是,我总是收到一条错误消息...

错误:

ErrorException
Undefined variable: counter (View: /laravel/resources/views/dashboard/index.blade.php)

路由(网络):

Route::get('/dashboard', function () {
    return view('dashboard.index');
});

模型(仪表板)

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Dashboard extends Model
{
    use HasFactory;

}

控制器(仪表板控制器)

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\DB;

class DashboardController extends Controller
{

    public function index()
    {
      $counter = DB::table('users')->count();
      return view('dashboard.index', compact('counter'));
    }
}

查看(仪表板/index.blade.php):

Users: {{ $counter }}