Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅分配类型(而非Id)的Laravel-4多态关系_Laravel_Laravel 4_Polymorphic Associations_Polymorphism - Fatal编程技术网

仅分配类型(而非Id)的Laravel-4多态关系

仅分配类型(而非Id)的Laravel-4多态关系,laravel,laravel-4,polymorphic-associations,polymorphism,Laravel,Laravel 4,Polymorphic Associations,Polymorphism,我正试图与拉威尔建立一种多态关系。我已经阅读了文档并查看了相关代码,但似乎无法使所有内容都正常工作。我正在尝试将照片附加到房间,其中一个房间可以有许多照片。与关系关联的类型有效,但id始终为0 为什么会有一部分起作用,有人能指出我的关系中有什么问题吗 我认为问题与我如何在表中创建数据有关: $photo = new Photo; $photo->URL = 'thePhotoURL.extension'; $photo->save(); $room = new Room; $roo

我正试图与拉威尔建立一种多态关系。我已经阅读了文档并查看了相关代码,但似乎无法使所有内容都正常工作。我正在尝试将
照片
附加到
房间
,其中一个房间可以有许多照片。与关系关联的
类型
有效,但
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 Photo extends Eloquent {
    public function imageable() {
        return $this->morphTo();
    }
}
房间:


我看到了保留字()的问题,但这似乎不是问题所在。

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

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

用这个:

$photo=$room->photos()->创建(数组('URL'=>'thephotour.extension')


…就在这里。非常感谢。我知道他们为什么不这样做,但我希望他们抛出一个异常。如果将id的值指定为0,则显然有问题!再次感谢!不客气,希望你喜欢拉雷维尔!
class Room extends Eloquent {       
    public function photos() {
        return $this->morphMany('Photo', 'imageable');
    }
}