suchen

Heim  >  Fragen und Antworten  >  Hauptteil

PHP-Dokumentation für bedingte polymorphe Aufrufe

<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粉127901279P粉127901279524 Tage vor551

Antworte allen(1)Ich werde antworten

  • P粉063039990

    P粉0630399902023-08-07 00:09:49

    将其分配给变量

    for($items as $item) {
        if ($item->loggable_type === Comment::class) {
            /** @var Comment $loggable */
            $loggable = $item->loggable;
            
            $loggable->resetDates();
        }
    } 

    Antwort
    0
  • StornierenAntwort