Exemplo n.º 1
0
 public static function queryRespondedToUserComments(BasicModel $user, $query = null)
 {
     $idArray = array();
     $comments = static::where(array('user_id' => $user->getKey()))->select(['id'])->get();
     foreach ($comments as $comment) {
         $idArray[] = $comment->id;
     }
     if ($query) {
         return $query->whereIn('commentable_id', $idArray)->where('commentable_type', get_called_class());
     } else {
         return static::whereIn('commentable_id', $idArray)->where('commentable_type', get_called_class());
     }
 }
 public static function queryRelatedItemN(BasicModel $item_m, BasicModel $item_n)
 {
     $nTableName = $item_n->getTable();
     $lTableName = static::getTableName();
     $item_m->cache_tags = ['QueryCache-table-' . $lTableName];
     return $item_n->select($nTableName . '.*')->join($lTableName, function ($join) use($item_n, $item_m, $nTableName, $lTableName) {
         $m = static::$nameM;
         $n = static::$nameN;
         $join->on("{$lTableName}.{$n}_id", "=", "{$nTableName}." . $item_n->getKeyName())->where("{$lTableName}.{$m}_id", "=", $item_m->getKey())->where("{$lTableName}.{$n}_type", "=", $item_n->getMorphClass())->where("{$lTableName}.{$m}_type", "=", $item_m->getMorphClass());
     });
 }