jenssegers/laravel-mongodb Basic Usage on cloud9 with php7⑧ sample case

App\User ===> App\MongoMessage  Mysql Relationships

App\MessageGroup ===> App\MongoMessage hasMany Relationships

 

App\User

  public function mongoMessages() {

    return $this->hasMany(MongoMessage::class);

  }

 

App\MessageGroup

  public function mongoMessages() {

    return $this->hasMany(MongoMessage::class);

  }

 

App\MongoMessage

  public function User() {

    return $this->belongsTo(User::class);

  }

 

  public function MessageGroup() {

    return $this->belongsTo(MessageGroup::class);

  }

 

@tinker 

$user = App\User::first();

$group = App\MessageGroup::first();

 

$message = App\MongoMessage::create(["body" => "test"]);

$message = $user->mongoMessages()->save($message);

$message = $group->mongoMessages()->save($message);

 

@mongo shell

db.mongoMessage.find()

 >>> _id: ~~~

  body: test,

  user_id: 1  ・・・SQL

  messageGroup_id: ~~~  ・・・mongoDB

 

@tinker

$group = App\MessageGroup::first();

$group->mongoMessages()->latest()->first();

>>> App\MongoMessage {

  _id: ~~~,

  body: test,

  user_id: 1,

  messageGroup_id: ~~~,

}

任意のメッセージグループの最新メッセージとメッセージ送信ユーザーの id を取得

 

related:

monteecristoo.hatenablog.com