我需要在一种形式中修改多个对象。这是我使用的:
我有所有必要表格的模型,以下是产品型号的示例:
int i, arrLen = arr.length;
StringBuilder tmp = new StringBuilder();
for (i=0; i<arrLen-1; i++)
tmp.append(arr[i] +" - ");
tmp.append(arr[arrLen-1]);
System.out.println( tmp.toString() );
在我的控制器中,我想将数据绑定到我的视图,以便我可以编辑它们。
class Product implements ProductInterface
{
/**
* @var int
*/
protected $Id;
/**
* @var string
*/
protected $Title;
/**
* @var float
*/
protected $Price;
/**
* @var string
*/
protected $Description;
/**
* @var string
*/
protected $Url;
/**
* @var \DateTime
*/
protected $DateAdded;
/**
* @var string
*/
protected $Image;
/**
* @var int
*/
protected $Status;
/**
* @return int
*/
public function getId()
{
return $this->Id;
}
/**
* @param int $Id
*/
public function setId($Id)
{
$this->Id = $Id;
}
/**
* @return string
*/
public function getTitle()
{
return $this->Title;
}
/**
* @param string $Title
*/
public function setTitle($Title)
{
$this->Title = $Title;
}
/**
* @return float
*/
public function getPrice()
{
return $this->Price;
}
/**
* @param float $Price
*/
public function setPrice($Price)
{
$this->Price = $Price;
}
/**
* @return string
*/
public function getDescription()
{
return $this->Description;
}
/**
* @param string $Description
*/
public function setDescription($Description)
{
$this->Description = $Description;
}
/**
* @return string
*/
public function getUrl()
{
return $this->Url;
}
/**
* @param string $Url
*/
public function setUrl($Url)
{
$this->Url = $Url;
}
/**
* @return \DateTime
*/
public function getDateAdded()
{
return $this->DateAdded;
}
/**
* @param \DateTime $DateAdded
*/
public function setDateAdded($DateAdded)
{
$this->DateAdded = $DateAdded;
}
/**
* @return string
*/
public function getImage()
{
return $this->Image;
}
/**
* @param string $Image
*/
public function setImage($Image)
{
$this->Image = $Image;
}
/**
* @return int
*/
public function getStatus()
{
return $this->Status;
}
/**
* @param int $Status
*/
public function setStatus($Status)
{
$this->Status = $Status;
}
首先,我需要从数据库中选择所有必要的信息。我加入三个表产品,促销和类别表。我必须将数据作为对象返回给我的控制器,并将其绑定到我的表单中,以便能够在视图页面上进行编辑。
请告诉我如何实现这一点,以便继续我的发展。我被卡住了。
我将感谢所有可以帮助我或给我现实生活中任何想法/例子的链接。
try {
$aProduct = $this->productService->findProduct($iId);
} catch (\Exception $ex) {
// ...
}
$form = new ProductForm();
$form->bind($aProduct);
我需要对结果进行水合并返回一个对象,我将在控制器中使用该对象来绑定表单。
答案 0 :(得分:0)
您可以手动填充数据库中的实体。
如果要自动填充需要在数据库和实体之间创建地图。我创建了一个用于在数据库和实体之间创建地图的库,使用实体https://github.com/newage/annotations中的注释。
下一步。
从表中获取不同的数据时。例如:
SELECT
table1.id AS table1.id,
table1.title AS table1.title,
table2.id AS table2.id,
table2.alias AS table2.alias
FROM table1
JOIN table2 ON table1.id = table2.id
需要按foreach
执行rows
并将数据设置为实体,比较行与表名和生成的地图中的实体。
从DB自动生成实体树是我的下一个项目。 但它没有完成。 https://github.com/newage/zf2-simple-orm