我有一个我想创建的多态记录。
这有效
$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"应该在多态关系上生成 - 它们只是空白。
答案 0 :(得分:1)
您需要扩展MorphTo
类并添加自定义方法 - 我没有看到实现此目的的简单方法。我建议您在用户模型上添加logSuccess
等方法。