static function setUpColumns($columns) { $columns->id = Column::AUTO_ID; $columns->albumId = Column::cast(Album::columns()->id)->copy()->setFlag(Column::NOT_NULL, false); $columns->height = Column::INTEGER + Column::SIZE_2B + Column::NOT_NULL; $columns->width = Column::INTEGER + Column::SIZE_2B + Column::NOT_NULL; $columns->path = Column::STRING + Column::NOT_NULL; $columns->url = Column::STRING + Column::NOT_NULL; $columns->hash = Column::create(Column::STRING)->setStringLength(32, true)->setUnique(); }
public function performAction() { if (!($user = AuthService::getInstance()->getUser())) { throw new \Exception('Authenticated user required'); } $this->response->success('CATALOGE!'); /** @var Album[] $albums */ $albums = Album::statement()->where('? = ?', Album::columns()->userId, $user->id)->query()->fetchAll(); $this->response->addContent(new Form(Create::createState(), $this->io)); $details = Details::createState(); if ($albums) { $this->response->addContent(new Rows(Processor::create($albums)->map(function (Album $album) use($details) { $row = array(); $details->albumId = $album->id; $anchor = $this->io->makeAnchor($details); $row['Title'] = new Anchor($album->title, $anchor); $row['Created'] = date('Y-m-d H:i:s', $album->created); $row['Updated'] = date('Y-m-d H:i:s', $album->updated); $row['Images'] = $album->imagesCount; return $row; }))); } }