摘要模型上的多态“保存”

时间:2014-05-21 13:22:23

标签: laravel-4

我有一个我想创建的多态记录。

这有效

$user->logs()->create(['message' => 'message', 'failed' => false]);

但是如何将其转换为这样的内容:

$user->logs()->logSuccess('message');

在我的日志模型类中,我尝试了这个:

public function scopeLogSuccess($query, $message)
{
    $this->create(['message' => $message, 'failed' => false]);
}

但没有任何反应。查询运行 - 但数据库中没有插入任何数据,也不会抛出任何错误。

我也试过这个:

public function scopeLogSuccess($query, $message)
{
    $this->message = $message;
    $this->failed = false;
    $this->save();
}

A"记录"保存在Logs表中 - 但它没有" loggable_id"或" loggable_type"应该在多态关系上生成 - 它们只是空白。

1 个答案:

答案 0 :(得分:1)

您需要扩展MorphTo类并添加自定义方法 - 我没有看到实现此目的的简单方法。我建议您在用户模型上添加logSuccess等方法。