我与Laravel有多态关系。 我的多态关系是Message-> messageable成为Group或Chat。
来自Message-> messageable会给我正确的结果(例如与消息相关联的群组或聊天)。
来自示例Group :: first() - > with('messages') - > get()将返回一个空消息数组。
我的消息的数据库表是 messageable_id messageable_type
我的模型方法如下
class Message extends Model
{
public function messageable(){
return $this->morphTo();
}
^按预期工作
class Group extends Model
{
function messages(){
return $this->morphMany('Message','messageable');
}
class Chat extends Model
{
public function messages(){
return $this->morphMany('Message','messageable');
这些返回为空。
使用的示例数据: 1
有什么想法吗?
答案 0 :(得分:1)
您的人际关系不正确。您需要引用完整的类命名空间,而不仅仅是类名本身。 E.g。
class Group extends Model
{
public function messages()
{
return $this->morphMany(\App\Models\Message::class', 'messageable');
}
}
答案 1 :(得分:0)
忘记在我的数据库messageable_type中包含名称空间。
从群组更改为App \ Group。