cari

Rumah  >  Soal Jawab  >  teks badan

Dokumentasi PHP untuk panggilan polimorfik bersyarat

<p>Untuk $item, terdapat hubungan boleh rakam polimorfik. Dalam pangkalan data, ini disimpan dalam medan loggable_type dan loggable_id dalam jadual item (tersedia dalam PHP 8+ dan Laravel). </p> <pre class="brush:php;toolbar:false;">for($item sebagai $item) { // ... if ($item->loggable_type === Ulasan::class) { $item->loggable->resetDates(); } // ... } </pra> <p>Saya cuba menaip-membawa sesuatu yang boleh dilog masuk dalam keadaan, menyatakan ia daripada jenis Komen. Saya cuba menggunakan @var, tetapi menulisnya seperti /* @var $item->Loggable Comment */ tidak berfungsi dan saya tidak boleh menggunakan /* @var $item Comment */ kerana itu menetapkan petunjuk jenis untuk $item dan bukannya sifatnya. <br /><br />Saya mempertimbangkan untuk menukar syarat kepada if ($item->loggable instanceof Comment), tetapi saya enggan berbuat demikian kerana walaupun Ulasan tidak digunakan, ia perlu dimuatkan dan dicipta. <br /><br />Adakah terdapat cara untuk menaip-petunjuk $item->boleh dilog untuk Mengulas? </p><p><kod></kod><kod></kod></p>
P粉127901279P粉127901279474 hari yang lalu518

membalas semua(1)saya akan balas

  • P粉063039990

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

    Tugaskannya kepada pembolehubah

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

    balas
    0
  • Batalbalas