我是Aimeos的新手,所以需要帮助!我正在Aimeos Laravel Package的帮助下在Laravel建立一个电子商务网站。
我创建了自己的Aimeos扩展程序。现在Aimeos产品形式有“SKU”字段。我想添加另一个名为“Old SKU”的字段。因此,我覆盖了表单部分(Basic)的现有模板并添加了新字段。这是用于更改Product表单模板的目录结构“./ext/myextension/admin/jqadm/templates/product”。
我还借助此文档扩展了“mshop_product”:Aimeos - Schema update并在表格中添加了一个字段,字段名称为“oldcode”。
但我面临的问题是我无法将此值保存在表格中。
我点了这个链接:Aimeos - Extend managers items,但这很令人困惑。
我创建了一个Item Class
namespace Aimeos\MAdmin\Product\Item;
class Myproject extends Standard
{
private $myvalues;
public function __construct( array $values, ... )
{
parent::__construct( $values, ... )
$this->myvalues = $values;
}
public function getMyId()
{
if( isset( $this->myvalues['myid'] ) ) {
return (string) $this->myvalues['myid'];
}
return '';
}
public function setMyId( $val )
{
if( (string) $val !== $this->getMyId() )
{
$this->values['myid'] = (string) $myid;
$this->setModified();
}
return $this;
}
public function fromArray( array $list )
{
$unknown = [];
$list = parent::fromArray( $list );
foreach( $list as $key => $value )
{
switch( $key )
{
case 'myid': $this->setMyId( $value ); break;
default: $unknown[$key] = $value;
}
}
return $unknown;
}
public function toArray( $private = false )
{
$list = parent::toArray( $private );
if( $private === true ) {
$list['myid'] = $this->getMyId();
}
return $list;
}
}
我创建了经理类:
namespace Aimeos\MAdmin\Product\Manager;
class Myproject extends Standard
{
private $searchConfig = array(
'product.oldcode'=> array(
'code'=>'product.oldcode',
'internalcode'=>'mpro."oldcode"',
'label'=>'Product oldcode',
'type'=> 'string', // integer, float, etc.
'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR, // _INT, _FLOAT, etc.
),
);
public function saveItem( \Aimeos\MShop\Common\Item\Iface $item, $fetch = true )
{
// a modified copy of the code from the parent class
// extended by a bind() call and updated bind positions (first parameter)
}
public function getSearchAttributes( $withsub = true )
{
$list = parent::getSearchAttributes( $withsub );
foreach( $this->searchConfig as $key => $fields ) {
$list[$key] = new \Aimeos\MW\Criteria\Attribute\Standard( $fields );
}
return $list;
}
protected function createItemBase( array $values = [] /* , ... */ )
{
return new \Aimeos\MShop\Product\Item\Myproject( $values /* , ... */ );
}
}
我还添加了一个配置文件:
return [
'product' => [
'manager' => [
'name' => 'Myproject'
],
],
];
但价值没有得到保存。