Проблема с отображением тенденции показателей с помощью Laravel Nova — слишком мало аргументов

#php #laravel #laravel-nova

#php #laravel #laravel-nova

Вопрос:

Итак, я пытаюсь добавить новую тенденцию показателей к ресурсу, но всегда получаю следующую ошибку:

 Too few arguments to function LaravelNovaResource::__construct(), 0 passed in /crm/nova/src/Metrics/Trend.php on line 116 and exactly 1 expected {"userId":1,"exception":"[object] (Symfony\Component\Debug\Exception\FatalThrowableError(code: 0): Too few arguments to function Laravel\Nova\Resource::__construct(), 0 passed in crm/nova/src/Metrics/Trend.php on line 116 and exactly 1 expected at /crm/nova/src/Resource.php:108)
  

Я пытаюсь получить данные из столбца «ph_value» в таблице базы данных «отчеты».

 <?php

namespace AppNovaMetrics;

use IlluminateHttpRequest;
use LaravelNovaMetricsTrend;
use AppNovaReport;

class ph extends Trend
{
    /**
     * Calculate the value of the metric.
     *
     * @param  IlluminateHttpRequest  $request
     * @return mixed
     */
    public function calculate(Request $request)
    {
        return $this->countByDays($request, Report::class, 'ph_value');
    }

    /**
     * Get the ranges available for the metric.
     *
     * @return array
     */
    public function ranges()
    {
        return [
            30 => '30 Days',
            60 => '60 Days',
            90 => '90 Days',
        ];
    }

    /**
     * Determine for how many minutes the metric should be cached.
     *
     * @return  DateTimeInterface|DateInterval|float|int
     */
    public function cacheFor()
    {
        // return now()->addMinutes(5);
    }

    /**
     * Get the URI key for the metric.
     *
     * @return string
     */
    public function uriKey()
    {
        return 'ph';
    }
}

  

Карта, конечно, включена.

 public function cards(Request $request)
    {
        return [
          new MetricsPh,
        ];
    }
  

Метрика тренда просто постоянно загружается, как будто она недоступна для извлечения данных.

Ответ №1:

countByDays второй параметр функции — это model класс, а не resource класс Nova.

Обновите следующую инструкцию use use AppNovaReport до use AppReport

Ответ №2:

У меня такая же проблема, просто измените use App Nova Report; на use App Report; и все будет хорошо. Предложение от php storm такое странное xD

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

1. Спасибо за вклад — пожалуйста, попробуйте отформатировать свой код и избегайте личных мнений