条件多态调用的PHP文档
P粉127901279
P粉127901279 2023-08-06 15:31:19
[PHP讨论组]
<p>对于 $item,存在一个多态的可记录关系。在数据库中,这被存储在 items 表中的 loggable_type 和 loggable_id 字段中(适用于 PHP 8+ 和 Laravel)。</p> <pre class="brush:php;toolbar:false;">for($items as $item) { // ... if ($item-&gt;loggable_type === Comment::class) { $item-&gt;loggable-&gt;resetDates(); } // ... } </pre> <p>我正在尝试对条件中的 loggable 进行类型提示,指定它为 Comment 类型。我尝试使用 @var,但是像 /* @var $item-&gt;loggable Comment */ 这样的写法不起作用,而且我也不能使用 /* @var $item Comment */,因为这会将类型提示设置为 $item 而不是其属性。<br /><br />我考虑将条件改为 if ($item-&gt;loggable instanceof Comment),但我不太愿意这样做,因为即使不使用 Comment,也需要加载和创建它。<br /><br />是否有一种方法可以将 $item-&gt;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();
    }
} 
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号