0

我有:

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'
    ))
);

一切都很好,只是“名称”没有保存在数据库中。mediable_id 和 mediable_type 等其他字段按预期保存。

有什么硬仗吗?

4

2 回答 2

0

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

protected $fillable = array('name');

见: http: //four.laravel.com/docs/eloquent#mass-assignment

于 2013-09-15T14:52:35.197 回答
0

解决了:

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

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

于 2013-09-15T14:43:46.033 回答