Как подсчитать количество строк в базе данных и отобразить в laravel 7

#php #database #laravel #laravel-7

#php #База данных #laravel #laravel-7

Вопрос:

Мне нужно подсчитать количество открытых заданий и отобразить их в представлении. Открыто 6 заданий. мне нужно отобразить 6 в зеленом поле. пожалуйста, смотрите вложение

Вложение

  <!-- opend job view -->
        <!-- ./col -->
          <div class="col-lg-3 col-6">
            <!-- small box -->
            <div class="small-box bg-success">
              <div class="inner">
                <h3>53<sup style="font-size: 20px">%</sup></h3>
    
                <p>Opened</p>
              </div>
              <div class="icon">
                <i class="fas fa-box-open"></i>
              </div>
              <a href="opened" class="small-box-footer">More info <i class="fas fa-arrow-circle-right"></i></a>
            </div>
          </div>

 <!-- opend job controler-->
public function open_count ()
    {
        $pend_counts = Job::where('state','Closed')->count();
        // return view('jobs.closed_job',compact('closed'));
        // $count = AppFlight::where('active', 1)->count();
    }

 <!-- Route-->
Route::get('/open_c','JobController@open_count');
  

Комментарии:

1. вам нужно извлечь количество строк из таблицы базы данных. Вы должны записать эту логику в свой контроллер

Ответ №1:

Вы должны получить количество в вашем контроллере и передать его в представление (не забывайте об этом):

 public function open_count ()
    {
        $opened_counts = Job::where('state','Closed')->count();
    
        //Add the $opened_counts variable to the compact function
        return view('jobs.closed_job',compact('opened_counts'));
       
    }
  

Затем в вашем блейд-файле вы можете вызвать {{$opened_counts}} переменную для отображения.

 <div class="col-lg-3 col-6">
            <!-- small box -->
            <div class="small-box bg-success">
              <div class="inner">
                <h3> {{$opened_counts}} <sup style="font-size: 20px">%</sup></h3>
    
                <p>Opened</p>
              </div>
              <div class="icon">
                <i class="fas fa-box-open"></i>
              </div>
              <a href="opened" class="small-box-footer">More info <i class="fas fa-arrow-circle-right"></i></a>
            </div>
          </div>
  

Если вам нужен процент, а не абсолютное значение, вы можете изменить контроллер на (вам также нужно будет обработать ошибку разделения на 0):

 public function open_count ()
    {
        $opened_counts = Job::where('state','Closed')->count();
        $percentage = $opened_counts / Job::all()->count();
    
        //Add the $opened_counts variable to the compact function
        return view('jobs.closed_job',compact('opened_counts', 'percentage'));
       
    }