Documentation PHP pour les appels polymorphes conditionnels
P粉127901279
P粉127901279 2023-08-06 15:31:19
0
1
521
<p>Pour $item, il existe une relation polymorphe enregistrable. Dans la base de données, ceci est stocké dans les champs loggable_type et loggable_id de la table items (disponible en PHP 8+ et Laravel). </p> <pre class="brush:php;toolbar:false;">for($items as $item) { //... if ($item->loggable_type === Commentaire :: classe) { $item->loggable->resetDates(); } //... } ≪/pré> <p>J'essaie de taper un indice dans une condition, en le spécifiant comme étant de type Commentaire. J'ai essayé d'utiliser @var, mais l'écrire comme /* @var $item->loggable Comment */ ne fonctionne pas et je ne peux pas utiliser /* @var $item Comment */ car cela définit l'indice de type pour $item plutôt que ses propriétés. <br /><br />J'ai envisagé de changer la condition en if ($item->loggable instanceof Comment), mais je suis réticent à le faire car même si Comment n'est pas utilisé, il doit l'être chargé et créé. <br /><br />Existe-t-il un moyen de saisir un indice $item->enregistrable pour commenter ? </p><p><code></code><code></code></p>
P粉127901279
P粉127901279

répondre à tous(1)
P粉063039990

Attribuez-le à une variable

for($items as $item) {
    if ($item->loggable_type === Comment::class) {
        /** @var Comment $loggable */
        $loggable = $item->loggable;
        
        $loggable->resetDates();
    }
} 
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal