gpt4 book ai didi

Laravel-4 多态关系仅分配类型(而不是 ID)

转载 作者:行者123 更新时间:2023-12-02 13:47:52 25 4
gpt4 key购买 nike

我正在尝试与 Laravel 建立多态关系。我已阅读文档并查看相关代码,但似乎无法使其全部正常工作。我正在尝试将照片附加到房间,其中一个房间可以有很多照片。与关系关联的type有效,但id始终为0

为什么其中一部分会起作用,有人可以指出我的关系中存在哪些问题吗?

我认为问题与我在表中创建数据的方式有关:

$photo = new Photo;
$photo->URL = 'thePhotoURL.extension';
$photo->save();

$room = new Room;
$room->name = 'Some Room Name';
// seems weird to me that I "save" the photo twice
// or am I just saving the relationship here?
// have tried the other relationship options too (associate, attach, synch)
$room->photos()->save($photo);
// have also tried:
// $room->photos()->save(new Photo(array('URL' => 'urlTest.com')));
// get error "URL"

$room->save();

创建照片表:

public function up() {
Schema::create('photos', function($t) {

$t->increments('id');

// ... ...
// the Id is always 0 but the type is correct
$t->integer('imageable_id');
$t->string('imageable_type');

$t->softDeletes();
$t->timestamps();

});
}

还有我的类(class),

照片:

class Photo extends Eloquent {
public function imageable() {
return $this->morphTo();
}
}

房间:

class Room extends Eloquent {       
public function photos() {
return $this->morphMany('Photo', 'imageable');
}
}

我发现保留字 ( like Event ) 存在问题,但这似乎不是这里的问题。

最佳答案

保存原始文件后,您需要运行$room->photos()->save($photo);。原始数据尚不存在,因此没有可关联的 ID。

也许它应该抛出异常,也许不应该。就我个人而言,我宁愿它对我尖叫。

关于Laravel-4 多态关系仅分配类型(而不是 ID),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18699835/

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