Optimierung 5.3 (Teil 1): Contact::displayName()
Anzeigename eines Kontakts (Vor-/Nachname mit Fallback) als Model-Methode. Ersetzt die identische Inline-Logik an 6 eindeutigen Relation-$contact-Stellen (Admin: Benutzer-/PM-/Firmen-Detail; Kunde: Press-Kit-/PM-Detail). Bewusst noch offen: Select-/toBase-Varianten ($contactOption/$contactResult/ $lookupContact, stdClass-Risiko) sowie web/release-detail (User-Frontend). Test: ContactDisplayNameTest. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
6bf6a091d3
commit
178adb00e2
8 changed files with 38 additions and 6 deletions
|
|
@ -63,6 +63,17 @@ class Contact extends Model
|
|||
return $this->belongsTo(Company::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Anzeigename eines Kontakts (Vor- + Nachname), mit Fallback, wenn beides
|
||||
* leer ist. Single Source of Truth für die Listen-/Detail-Ansichten.
|
||||
*/
|
||||
public function displayName(): string
|
||||
{
|
||||
$name = trim(($this->first_name ?? '').' '.($this->last_name ?? ''));
|
||||
|
||||
return $name !== '' ? $name : __('Kontakt ohne Name');
|
||||
}
|
||||
|
||||
public function pressReleases(): BelongsToMany
|
||||
{
|
||||
return $this->belongsToMany(PressRelease::class, 'press_release_contact');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue