Dokumentasi PHP untuk panggilan polimorfik bersyarat
P粉127901279
P粉127901279 2023-08-06 15:31:19
0
1
531
<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粉127901279
P粉127901279

membalas semua(1)
P粉063039990

Tugaskannya kepada pembolehubah

for($items as $item) {
    if ($item->loggable_type === Comment::class) {
        /** @var Comment $loggable */
        $loggable = $item->loggable;
        
        $loggable->resetDates();
    }
} 
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan