*/ public function get(array $condition): Collection { $table = Contract::getBuilder(static::TABLE_CONTRACT); // -----検索条件 // ID $this->where($table, $condition, static::CONDITION_ID, $this->makeColumnName([static::TABLE_CONTRACT, Contract::COL_NAME_ID])); // 名前 $name = data_get($condition, static::CONDITION_NAME); if ($name) { $table->where($this->makeColumnName([static::TABLE_CONTRACT, Contract::COL_NAME_NAME]), 'like', "%{$name}%"); } $table->select($this->columns()); $main = DB::table($table, "main"); // ソート $this->sort($main, $condition); $main->orderBy(static::CONDITION_ID); // リミット $this->limit($main, $condition); return ContractRepositoryData::makeList($main->get()); } private function columns() { $contract = static::TABLE_CONTRACT; $columns = [ $this->makeColumnNameForSelect([$contract, Contract::COL_NAME_ID]), $this->makeColumnNameForSelect([$contract, Contract::COL_NAME_NAME]), $this->makeColumnNameForSelect([$contract, Contract::COL_NAME_UPDATED_AT]), ]; return $columns; } }