calling https://cms-universel.tfo.dev.lesaffranchis.ca/api/tfo.org/single/film/la-cuisine-au-beurre/498037
CmsUniverselDev
Internal Server Error

Error

Call to a member function mapForApi() on null

LARAVEL 12.31.1
PHP 8.3.4
UNHANDLED
CODE 0
GET
https://cms-universel.tfo.dev.lesaffranchis.ca/api/tfo.org/single/film/la-cuisine-au-beurre/498037

Overview

DATE
2025/12/06 04:52:11.233 UTC
STATUS CODE
500
METHOD
GET

Exception trace

App\Helpers\FilamentActionsMethod::getTFODestination(array, array, null, array)
app/Helpers/FilamentActionsMethod.php:643
638
639            else if (in_array($type, ["titre", "film", "documentaire"]))
640            {
641                $product = DirectusProducts::where("biznumber", $biznumber)->with("programmation")->first();
642                /* @var DirectusProducts $product */
643                $output = $product->mapForApi();
644            }
645            else if (in_array($type, ["episode"]))
646            {
647                $product = DirectusProducts::where("biznumber", $biznumber)->with(["collection.series.products","programmation"])->first();
648                /* @var DirectusProducts $product */
649                $output = $product->mapForApi();
650            }
651            else if (in_array($type, ["saison"]))
652            {
653                $serie = DirectusSeries::where("biznumber", $biznumber)->with("collection.series.products.programmation")->first();
654
655
App\Helpers\Evaluator::evaluateData(array, array)
app/Helpers/Evaluator.php:480
475                    $method = $option["method"] ?? "";
476                    $class = FilamentActionsMethod::class;
477
478                    if (is_callable([$class, $method]))
479                    {
480                        $output = $class::$method($option, $record, $caller, $record);
481                    }
482                    else {
483                        $output = ["data" => "method not found :" . $method, "status" => 404];
484                    }
485                }
486                else if ($type == "mutator")
487                {
488                    $method = $option["method"] ?? "";
489                    $class = Mutators::class;
490
491                    if (is_callable([$class, $method]))
492
App\Controllers\Api::populate(array)
app/Controllers/Api.php:458
453            {
454
455                $params = (object)$route["params"];
456            }
457
458            $data = Evaluator::evaluateData($getData, $params);
459
460            //$conditions = $node["conditions"] ?? [];
461
462            //$canOutput = self::evalConditions($conditions, $route["params"]);
463
464            return ["data" => $data, "status" => 200];
465        }
466
467
468
469        public static function findRoute($api, $strRoute)
470
App\Controllers\Api::matchRoute(string)
app/Controllers/Api.php:426
421                return response()->json([
422                    'error' => $route["error"],
423                ], 404);
424            }
425
426            $output = self::populate($route);
427
428            return response()->json($output["data"], $output["status"] ?? 200, [], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
429        }
430
431        public static function populate ($route)
432        {
433            $node = $route["node"][$route["matched_type"]] ?? null;
434
435            if (empty($node))
436            {
437                return ["data" => "Route not found", "status" => 404];
438
22 vendor frames
Illuminate\Routing\ControllerDispatcher->dispatch(object(Illuminate\Routing\Route), object(App\Controllers\Api), string)
vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:46
Illuminate\Routing\Route->runController()
vendor/laravel/framework/src/Illuminate/Routing/Route.php:265
Illuminate\Routing\Route->run()
vendor/laravel/framework/src/Illuminate/Routing/Route.php:211
Illuminate\Routing\Router->Illuminate\Routing\{closure}(object(Illuminate\Http\Request))
vendor/laravel/framework/src/Illuminate/Routing/Router.php:822
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Illuminate\Http\Request))
vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180
Illuminate\Routing\Middleware\SubstituteBindings->handle(object(Illuminate\Http\Request), object(Closure))
vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:50
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Illuminate\Http\Request))
vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:219
Illuminate\Pipeline\Pipeline->then(object(Closure))
vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:137
Illuminate\Routing\Router->runRouteWithinStack(object(Illuminate\Routing\Route), object(Illuminate\Http\Request))
vendor/laravel/framework/src/Illuminate/Routing/Router.php:821
Illuminate\Routing\Router->runRoute(object(Illuminate\Http\Request), object(Illuminate\Routing\Route))
vendor/laravel/framework/src/Illuminate/Routing/Router.php:800
Illuminate\Routing\Router->dispatchToRoute(object(Illuminate\Http\Request))
vendor/laravel/framework/src/Illuminate/Routing/Router.php:764
Illuminate\Routing\Router->dispatch(object(Illuminate\Http\Request))
vendor/laravel/framework/src/Illuminate/Routing/Router.php:753
Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(object(Illuminate\Http\Request))
vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:200
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Illuminate\Http\Request))
vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180
Livewire\Features\SupportDisablingBackButtonCache\DisableBackButtonCacheMiddleware->handle(object(Illuminate\Http\Request), object(Closure))
vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php:19
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Illuminate\Http\Request))
vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:219
Illuminate\Http\Middleware\TrustProxies->handle(object(Illuminate\Http\Request), object(Closure))
vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php:58
Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(object(Illuminate\Http\Request))
vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:219
Illuminate\Pipeline\Pipeline->then(object(Closure))
vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:137
Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(object(Illuminate\Http\Request))
vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:175
Illuminate\Foundation\Http\Kernel->handle(object(Illuminate\Http\Request))
vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:144
Illuminate\Foundation\Application->handleRequest(object(Illuminate\Http\Request))
vendor/laravel/framework/src/Illuminate/Foundation/Application.php:1220
html/index.php
html/index.php:20
15
16// Bootstrap Laravel and handle the request...
17/** @var Application $app */
18$app = require_once __DIR__.'/../bootstrap/app.php';
19
20$app->handleRequest(Request::capture());
21

Queries

mysql
select * from `directus_products` where `biznumber` = '498037' limit 1
31.54ms

Headers

accept-encoding
gzip
x-forwarded-server
c344ba6dd571
uber-trace-id
4df54c83d1d7fa03:63842768f3d8977e:4df54c83d1d7fa03:1
user-agent
GuzzleHttp/7
x-original-uri
/api/tfo.org/single/film/la-cuisine-au-beurre/498037
x-forwarded-port
443
x-forwarded-ssl
on
x-forwarded-host
cms-universel.tfo.dev.lesaffranchis.ca
connection
close
x-forwarded-proto
https
x-forwarded-for
23.21.116.100, 54.235.143.92, 172.20.0.5
x-real-ip
172.20.0.5
host
cms-universel.tfo.dev.lesaffranchis.ca

Body

// No request body

Routing

controller
App\Controllers\Api@matchRoute
middleware
api

Routing parameters

{
    "any": "tfo.org/single/film/la-cuisine-au-beurre/498037"
}
Illuminate\Http\Client\Response {#337 // app/Services/ApiDataService.php:137
  #response: GuzzleHttp\Psr7\Response {#373
    -reasonPhrase: "Internal Server Error"
    -statusCode: 500
    -headers: array:6 [
      "Cache-Control" => array:1 [
        0 => "no-cache, private"
      ]
      "Content-Type" => array:1 [
        0 => "text/html; charset=UTF-8"
      ]
      "Date" => array:1 [
        0 => "Sat, 06 Dec 2025 04:52:13 GMT"
      ]
      "Server" => array:1 [
        0 => "nginx/1.25.3"
      ]
      "X-Powered-By" => array:1 [
        0 => "PHP/8.3.4"
      ]
      "Transfer-Encoding" => array:1 [
        0 => "chunked"
      ]
    ]
    -headerNames: array:6 [
      "cache-control" => "Cache-Control"
      "content-type" => "Content-Type"
      "date" => "Date"
      "server" => "Server"
      "x-powered-by" => "X-Powered-By"
      "transfer-encoding" => "Transfer-Encoding"
    ]
    -protocol: "1.1"
    -stream: GuzzleHttp\Psr7\Stream {#369
      -stream: stream resource @491
        wrapper_type: "PHP"
        stream_type: "TEMP"
        mode: "w+b"
        unread_bytes: 0
        seekable: true
        uri: "php://temp"
        options: []
      }
      -size: null
      -seekable: true
      -readable: true
      -writable: true
      -uri: "php://temp"
      -customMetadata: []
    }
  }
  #decoded: null
  +cookies: GuzzleHttp\Cookie\CookieJar {#355
    -cookies: []
    -strictMode: false
  }
  +transferStats: GuzzleHttp\TransferStats {#374
    -request: GuzzleHttp\Psr7\Request {#360
      -method: "GET"
      -requestTarget: null
      -uri: GuzzleHttp\Psr7\Uri {#356
        -scheme: "https"
        -userInfo: ""
        -host: "cms-universel.tfo.dev.lesaffranchis.ca"
        -port: null
        -path: "/api/tfo.org/single/film/la-cuisine-au-beurre/498037"
        -query: ""
        -fragment: ""
        -composedComponents: "https://cms-universel.tfo.dev.lesaffranchis.ca/api/tfo.org/single/film/la-cuisine-au-beurre/498037"
      }
      -headers: array:2 [
        "User-Agent" => array:1 [
          0 => "GuzzleHttp/7"
        ]
        "Host" => array:1 [
          0 => "cms-universel.tfo.dev.lesaffranchis.ca"
        ]
      ]
      -headerNames: array:2 [
        "user-agent" => "User-Agent"
        "host" => "Host"
      ]
      -protocol: "1.1"
      -stream: GuzzleHttp\Psr7\Stream {#359
        -stream: stream resource @481
          wrapper_type: "PHP"
          stream_type: "TEMP"
          mode: "w+b"
          unread_bytes: 0
          seekable: true
          uri: "php://temp"
          options: []
        }
        -size: 0
        -seekable: true
        -readable: true
        -writable: true
        -uri: "php://temp"
        -customMetadata: []
      }
    }
    -response: GuzzleHttp\Psr7\Response {#373}
    -transferTime: 4.045397
    -handlerStats: array:41 [
      "url" => "https://cms-universel.tfo.dev.lesaffranchis.ca/api/tfo.org/single/film/la-cuisine-au-beurre/498037"
      "content_type" => "text/html; charset=UTF-8"
      "http_code" => 500
      "header_size" => 224
      "request_size" => 141
      "filetime" => -1
      "ssl_verify_result" => 0
      "redirect_count" => 0
      "total_time" => 4.045397
      "namelookup_time" => 0.003155
      "connect_time" => 0.004186
      "pretransfer_time" => 0.105258
      "size_upload" => 0.0
      "size_download" => 1255002.0
      "speed_download" => 310229.0
      "speed_upload" => 0.0
      "download_content_length" => -1.0
      "upload_content_length" => 0.0
      "starttransfer_time" => 4.013864
      "redirect_time" => 0.0
      "redirect_url" => ""
      "primary_ip" => "54.235.143.92"
      "certinfo" => []
      "primary_port" => 443
      "local_ip" => "172.20.0.26"
      "local_port" => 53546
      "http_version" => 2
      "protocol" => 2
      "ssl_verifyresult" => 0
      "scheme" => "HTTPS"
      "appconnect_time_us" => 105189
      "connect_time_us" => 4186
      "namelookup_time_us" => 3155
      "pretransfer_time_us" => 105258
      "redirect_time_us" => 0
      "starttransfer_time_us" => 4013864
      "total_time_us" => 4045397
      "effective_method" => "GET"
      "capath" => "/etc/ssl/certs"
      "cainfo" => "/etc/ssl/certs/ca-certificates.crt"
      "appconnect_time" => 0.105189
    ]
    -handlerErrorData: 0
  }
  #truncateExceptionsAt: null
}