Fix json_decode null handling in PreviewsCompose
Fixed three potential fatal errors where json_decode could return null: 1. save() method (lines 39-41): Added null coalescing to default to empty array, and ensure service entry exists before writing domain 2. generate() method (line 56): Changed to use assoc flag consistently and fallback to empty array 3. generate() method (lines 95-97): Same fix as save() - null coalescing and service entry initialization All json_decode calls now consistently: - Use the assoc flag to return arrays (not objects) - Fall back to empty array with ?: [] - Initialize service entry with ?? [] before writing This prevents "Attempt to modify property of null" fatal errors. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
d2a334df78
commit
db3514cd8e
1 changed files with 5 additions and 3 deletions
|
|
@ -36,7 +36,8 @@ public function save()
|
|||
$this->authorize('update', $this->preview->application);
|
||||
|
||||
$docker_compose_domains = data_get($this->preview, 'docker_compose_domains');
|
||||
$docker_compose_domains = json_decode($docker_compose_domains, true);
|
||||
$docker_compose_domains = json_decode($docker_compose_domains, true) ?: [];
|
||||
$docker_compose_domains[$this->serviceName] = $docker_compose_domains[$this->serviceName] ?? [];
|
||||
$docker_compose_domains[$this->serviceName]['domain'] = $this->domain;
|
||||
$this->preview->docker_compose_domains = json_encode($docker_compose_domains);
|
||||
$this->preview->save();
|
||||
|
|
@ -52,7 +53,7 @@ public function generate()
|
|||
try {
|
||||
$this->authorize('update', $this->preview->application);
|
||||
|
||||
$domains = collect(json_decode($this->preview->application->docker_compose_domains)) ?? collect();
|
||||
$domains = collect(json_decode($this->preview->application->docker_compose_domains, true) ?: []);
|
||||
$domain = $domains->first(function ($_, $key) {
|
||||
return $key === $this->serviceName;
|
||||
});
|
||||
|
|
@ -91,7 +92,8 @@ public function generate()
|
|||
// Save the generated domain
|
||||
$this->domain = $preview_fqdn;
|
||||
$docker_compose_domains = data_get($this->preview, 'docker_compose_domains');
|
||||
$docker_compose_domains = json_decode($docker_compose_domains, true);
|
||||
$docker_compose_domains = json_decode($docker_compose_domains, true) ?: [];
|
||||
$docker_compose_domains[$this->serviceName] = $docker_compose_domains[$this->serviceName] ?? [];
|
||||
$docker_compose_domains[$this->serviceName]['domain'] = $this->domain;
|
||||
$this->preview->docker_compose_domains = json_encode($docker_compose_domains);
|
||||
$this->preview->save();
|
||||
|
|
|
|||
Loading…
Reference in a new issue