无法在多态模型上保存其他数据 - Laravel 4

时间:2013-09-15 13:38:12

标签: laravel polymorphism laravel-4

我有:

class Media extends Base{
    public function mediable()
    {
        return $this->morphTo();
    }
}

class Offer extends Base{
    public function media()
    {
        return $this->morphMany('Media', 'mediable');
    }
}

我这样做:

Offer::find(5)->media()->save(
    new Media(array(
        'name' => 'sasdfasdf'
    ))
);

Everythig很好,只是“name”没有保存在数据库中。其他字段如mediable_id和mediable_type正在按预期保存。

有什么难事吗?

2 个答案:

答案 0 :(得分:0)

解决:

$media = new Media;
$media->name = 'Some name';
Offer::find(5)->media()->save($media);

由于某种原因,另一种方式不起作用。

答案 1 :(得分:0)

这与您在模型中的自己的设置有关。将此代码添加到您的媒体模型中,您将能够使用原始方法:

protected $fillable = array('name');

请参阅:http://four.laravel.com/docs/eloquent#mass-assignment