【发布时间】:2017-04-18 15:44:45
【问题描述】:
我正在尝试创建一个新闻项目并将其缩略图存储在与其主键对应的位置:$this->getKey。这在 update 上有效,因为密钥可用,但在 create 上不可用。
我正在使用操纵器setThumbnailImageAttribute来处理文件上传:
public function setThumbnailImageAttribute($value) {
$this->setImage(
'thumbnail_image',
$value,
'news/'.$this->getKey().'/thumbnail_image/'
);
}
setImage 处理上传并为属性(以及数据库)设置正确的值
在更新这会导致正确:
'news/1/thumbnail_image/'
在创建时,这会导致不正确:
'新闻//thumbnail_image/'
如何使用 mutator 实现这一点,还是有其他方法?
【问题讨论】:
-
这看起来像一个派生属性。您不应该将其存储在数据库中(特别是考虑到从现有记录构建它是微不足道的)。
标签: php laravel laravel-5 eloquent mutators