Dav*_*ong 0 database json eloquent laravel-5 php-7
是否可以使用 Eloquent 在 Laravel 5 中创建外键存在于列中字段中的关系JSON?
如果是的话,怎么会这样呢?
示例:我有一个chats带有数据类型participantIds列的表JSON。JSON数据的格式如下所示:
{"creator": "1", "recipient": "2"}
Run Code Online (Sandbox Code Playgroud)
我想users使用这些字段加入表来获取聊天的参与者。我怎么做?
Laravel 没有对 JSON 关系的原生支持。
我为此创建了一个包:https ://github.com/staudenmeir/eloquent-json-relations
你可以这样使用它:
class Chat extends Model
{
use \Staudenmeir\EloquentJsonRelations\HasJsonRelationships;
protected $casts = [
'participantIds' => 'json',
];
public function creator()
{
return $this->belongsTo(User::class, 'participantIds->creator');
}
public function recipient()
{
return $this->belongsTo(User::class, 'participantIds->recipient');
}
}
class User extends Model
{
use \Staudenmeir\EloquentJsonRelations\HasJsonRelationships;
public function createdChats()
{
return $this->hasMany(Chat::class, 'participantIds->creator');
}
public function receivedChats()
{
return $this->hasMany(Chat::class, 'participantIds->recipient');
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2342 次 |
| 最近记录: |