public function testAutoNamingModel() { $model = new ExampleModel(); $this->assertEquals('example_model', $model->getId()); $this->assertEquals('example_model', $model->getAlias()); $model->setId('example-name'); $this->assertEquals('example-name', $model->getId()); $this->assertEquals('example-name', $model->getAlias()); $model->setAlias('another-name'); $this->assertEquals('example-name', $model->getId()); $this->assertEquals('another-name', $model->getAlias()); }
/** * Returns a model that have an alias and columns with attributes * * @return Model */ public function getAnotherModel() : Model { $model = new ExampleModel(); $model->setAlias('another_model'); $id = new Column('id'); $id->setAutomatic(); $stock = new Column('stock'); $stock->setAlias('product_stock')->addFilter(function ($column) { return (int) $column; }); $product = new Column('product'); $product->setAlias('product_name')->setDefault('My name'); $add = new Column('add'); $add->setAlias('date_added')->setDefault(new \DateTime())->addSetterFilter(function ($column) { return $column instanceof \DateTime ? $column : null; })->addGetterFilter(function ($column) { return empty($column) ? null : new \DateTime($column); }); $model->addColumn($id); $model->addColumn($product); return $model; }