PHP-Dokumentation für bedingte polymorphe Aufrufe
P粉127901279
P粉127901279 2023-08-06 15:31:19
0
1
413
<p>Für $item gibt es eine polymorphe aufzeichnbare Beziehung. In der Datenbank wird dies in den Feldern loggable_type und loggable_id in der Items-Tabelle gespeichert (verfügbar in PHP 8+ und Laravel). </p> <pre class="brush:php;toolbar:false;">for($items as $item) { // ... if ($item->loggable_type === Comment::class) { $item->loggable->resetDates(); } // ... } </pre> <p>Ich versuche, einen protokollierbaren Eintrag in einer Bedingung mit einem Typhinweis zu versehen und ihn als Kommentartyp festzulegen. Ich habe versucht, @var zu verwenden, aber das Schreiben wie /* @var $item->loggable Comment */ funktioniert nicht, und ich kann /* @var $item Comment */ nicht verwenden, da dadurch der Typhinweis für festgelegt wird $item statt seiner Eigenschaften. <br /><br />Ich habe darüber nachgedacht, die Bedingung in if ($item->loggable caseof Comment) zu ändern, aber ich zögere, das zu tun, denn selbst wenn Comment nicht verwendet wird, muss es sein geladen und erstellt. <br /><br />Gibt es eine Möglichkeit, $item->loggable in den Kommentar einzugeben? </p><p><code></code><code></code></p>
P粉127901279
P粉127901279

Antworte allen(1)
P粉063039990

将其分配给变量

for($items as $item) {
    if ($item->loggable_type === Comment::class) {
        /** @var Comment $loggable */
        $loggable = $item->loggable;
        
        $loggable->resetDates();
    }
} 
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!