Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Creating Trend widget causes a FatalError

オープン
#352 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
laravel, php
領域
backend

調査の方向性

src/Metrics/MySqlTrendDateExpression.php から始め、getValue() の宣言を Illuminate\Database\Query\Expression と比較します。次に、src/Metrics/TrendDateExpressionFactory.php と src/Actions/CalculateWidgetAction.php からの構築処理を追跡します。Laravel 10.17 で MySQL Trend widget を作成しても、報告されている FatalError が発生しなくなれば完了です。

索引モデルが issue の本文から書いたものです。

説明


OS: darwin
Invoker Version: 2.13.1
Laravel Version: 10.17
Local project: true
PHP Binary: /opt/homebrew/Cellar/php/8.2.8/bin/php
Route: /project/index?class=App%5CModels%5CInvoice&time=1692027774627&project=local-hyLt5zswyaqmohewQmjtHR

Error:

Symfony\Component\ErrorHandler\Error\FatalError 

  Declaration of _HumbugBox691400d5ac8c\Invoker\Metrics\MySqlTrendDateExpression::getValue() must be compatible with Illuminate\Database\Query\Expression::getValue(Illuminate\Database\Grammar $grammar)

  at phar:/Applications/Invoker.app/Contents/Resources/invoker_l10.phar/src/Metrics/MySqlTrendDateExpression.php:7
      3▕ namespace _HumbugBox691400d5ac8c\Invoker\Metrics;
      4▕ 
      5▕ class MySqlTrendDateExpression extends \_HumbugBox691400d5ac8c\Invoker\Metrics\TrendDateExpression
      6▕ {
  ➜   7▕     public function getValue()
      8▕     {
      9▕         switch ($this->unit) {
     10▕             case 'months':
     11▕                 return "date_format({$this->wrap($this->column)}, '%Y-%m')";

      +6 vendor frames 

  7   phar:/Applications/Invoker.app/Contents/Resources/invoker_l10.phar/src/Metrics/TrendDateExpressionFactory.php:16
      Composer\Autoload\ClassLoader::loadClass("'_HumbugBox691400d5ac8c\\Invoker\\Metrics\\MySqlTrendDateExpression'")

  8   phar:/Applications/Invoker.app/Contents/Resources/invoker_l10.phar/src/Actions/CalculateWidgetAction.php:104
      _HumbugBox691400d5ac8c\Invoker\Metrics\TrendDateExpressionFactory::make("class Illuminate\Database\Eloquent\Builder { protected $query = class Illuminate\Database\Query\Builder { public $connection = class Illuminate\Database\MySqlConnection { ... }; public $grammar = class Illuminate\Database\Query\Grammars\MySqlGrammar { ... }; public $processor = class Illuminate\Database\Query\Processors\MySqlProcessor { ... }; public $bindings = [...]; public $aggregate = NULL; public $columns = NULL; public $distinct = FALSE; public $from = 'invoices'; public $indexHint = NULL; public $joins = NULL; public $wheres = [...]; public $groups = NULL; public $havings = NULL; public $orders = NULL; public $limit = NULL; public $offset = NULL; public $unions = NULL; public $unionLimit = NULL; public $unionOffset = NULL; public $unionOrders = NULL; public $lock = NULL; public $beforeQueryCallbacks = [...]; public $operators = [...]; public $bitwiseOperators = [...]; public $useWritePdo = FALSE }; protected $model = class App\Models\Invoice { protected $connection = NULL; prote...", "'created_at'", "'days'")


   Whoops\Exception\ErrorException 

  Declaration of _HumbugBox691400d5ac8c\Invoker\Metrics\MySqlTrendDateExpression::getValue() must be compatible with Illuminate\Database\Query\Expression::getValue(Illuminate\Database\Grammar $grammar)

  at phar:/Applications/Invoker.app/Contents/Resources/invoker_l10.phar/src/Metrics/MySqlTrendDateExpression.php:7
      3▕ namespace _HumbugBox691400d5ac8c\Invoker\Metrics;
      4▕ 
      5▕ class MySqlTrendDateExpression extends \_HumbugBox691400d5ac8c\Invoker\Metrics\TrendDateExpression
      6▕ {
  ➜   7▕     public function getValue()
      8▕     {
      9▕         switch ($this->unit) {
     10▕             case 'months':
     11▕                 return "date_format({$this->wrap($this->column)}, '%Y-%m')";

      +1 vendor frames 

  2   [internal]:0
      Whoops\Run::handleShutdown()
主要言語
言語のデータがありません
スター
76
フォーク
1
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

beyondcode/invoker-community のほかの issue

beyondcode/invoker-community の issue をすべて見る

似ている issue

Backend & API Design の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。