gpt4 book ai didi

php - 如何删除 Eloquent 中的多态关系?

转载 作者:可可西里 更新时间:2023-11-01 00:05:17 26 4
gpt4 key购买 nike

我有这样一个模型:

<?php

class Post extends Eloquent {
protected $fillable = [];


public function photos()
{
return $this->morphMany('Upload', 'imageable');
}

public function attachments()
{
return $this->morphMany('Upload', 'attachable');
}

}

和我的 morphMany表的架构是这样的:

CREATE TABLE `uploads` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`raw_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`size` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`downloads` int(11) NOT NULL DEFAULT '0',
`imageable_id` int(11) DEFAULT NULL,
`imageable_type` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
`attachable_id` int(11) DEFAULT NULL,
`attachable_type` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
`user_id` int(10) unsigned NOT NULL,
`created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
KEY `uploads_user_id_index` (`user_id`),
CONSTRAINT `uploads_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `posts` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=45 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

现在我需要删除这个表的一行,我试过$posts->photos()->delete();但它删除了与此 Post 关联的所有行.

有人可以帮我吗?

最佳答案

$posts->photos() 是返回帖子所有照片的关系查询。如果您对其调用 delete(),它将删除所有这些记录。如果只想删除特定记录,则需要确保只对要删除的记录调用 delete。例如:

$posts->photos()->where('id', '=', 1)->delete();

关于php - 如何删除 Eloquent 中的多态关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28305553/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com