<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; /** * @method static where(string $string, string $uid) * @method static create(array $array) */ class ChatBox extends Model { protected $fillable = [ 'user_id', 'from', 'to', 'notification', 'sending_server_id', ]; public static function boot() { parent::boot(); // Create uid when creating list. static::creating(function ($item) { // Create new uid $uid = uniqid(); while (self::where('uid', $uid)->count() > 0) { $uid = uniqid(); } $item->uid = $uid; }); } public function boxMessages() { $this->belongsTo(ChatBoxMessage::class, 'box_id', 'id'); } /** * get route key by uid * * @return string */ public function getRouteKeyName(): string { return 'uid'; } }