條件多態性呼叫的PHP文檔
P粉127901279
P粉127901279 2023-08-06 15:31:19
0
1
527
<p>對於 $item,存在一個多態的可記錄關係。在資料庫中,這被儲存在 items 表中的 loggable_type 和 loggable_id 欄位中(適用於 PHP 8 和 Laravel)。 </p> <pre class="brush:php;toolbar:false;">for($items as $item) { // ... if ($item->loggable_type === Comment::class) { $item->loggable->resetDates(); } // ... } </pre> <p>我正在嘗試對條件中的 loggable 進行類型提示,指定它為 Comment 類型。我嘗試使用@var,但是像/* @var $item->loggable Comment */ 這樣的寫法不起作用,而且我也不能使用/* @var $item Comment */,因為這會將類型提示設定為$item 而非其屬性。 <br /><br />我考慮將條件改為if ($item->loggable instanceof Comment),但我不太願意這樣做,因為即使不使用Comment,也需要加載和創建它。 <br /><br />是否有方法可以將 $item->loggable 的型別提示為 Comment? </p><p><code></code><code></code></p>
P粉127901279
P粉127901279

全部回覆(1)
P粉063039990

將其指派給變數

for($items as $item) {
    if ($item->loggable_type === Comment::class) {
        /** @var Comment $loggable */
        $loggable = $item->loggable;
        
        $loggable->resetDates();
    }
} 
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板