我正在尝试将数组 ($sales) 保存到数据库中

Posted

技术标签:

【中文标题】我正在尝试将数组 ($sales) 保存到数据库中【英文标题】:I'm trying to save an array ($sales) into the database 【发布时间】:2013-11-28 16:30:32 【问题描述】:

我正在尝试保存数组 $sales。

这里将数据放入这个数组中:

sales
    0
        Product
            id146
            category
            descriptiondrei
            created2013-11-20 14:10:12
            modified2013-11-20 14:10:12
            shop_id27
            category_id1
            image(null)
        Shop
            id27
            user_id23
            titlebarby
            descriptionkleines
            created2013-10-29 12:51:32
            modified2013-10-29 12:51:32
        Category
            id1
            imageHaushalt

Controller 中的方法如下所示:

公共函数 save_notepad()

    $sales = array();

    if($this -> Session -> valid() && $this -> Session -> check('notepad')) 
        $notepad = $this -> Session -> read('notepad');
        $this->loadModel('Product');
        $condition = array('Product.id' => $notepad);   
        $sales = $this -> Product-> find('all', array('conditions' => $condition)); 
           
    $this -> set('sales', $sales);

     if ($this->request->is('post')) 
        $this->Sale->create();
        if ($this->Sale->saveall($sales));
            $this->Session->setFlash(__('The sale has been saved'));
            return $this->redirect(array('action' => 'index'));
        
    

问题是,当我保存时,在数据库中它只保存 id 和创建日期。

模型如下所示: 类销售扩展 AppModel

public $belongsTo = array(
    'Product' => array(
        'className' => 'Product',
        'foreignKey' => 'product_id',
        'conditions' => array('Product.id' => 'Sale.product_id'),
        'fields' => '',
        'order' => ''
    ),
    'Shop' => array(
        'className' => 'Shop',
        'foreignKey' => 'shop_id',
        'conditions' => '',
        'fields' => '',
        'order' => ''
));

我需要做些什么来保存数组 $sales 中已经存在的“product_id”和“shop_id”?

感谢您的帮助!

【问题讨论】:

【参考方案1】:

将数组序列化为 xml 或 json 并作为单个字符串 blob 保存到数据库中。

【讨论】:

【参考方案2】:

我找到了解决办法:

php echo $this->Form>input('product-id', array('type' => 'Text', 'value' => $sales['Product']['ID']));

它需要“类型”而不是“价值”。

【讨论】:

以上是关于我正在尝试将数组 ($sales) 保存到数据库中的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 将动态输入数据数组保存到数据库中

将文件中的数据保存到数组中

我目前正在尝试通过将字符串重新定义为数字来将一组整数保存在 int 数组中,然后将其存储在数组中

“数组到字符串的转换”错误 Laravel - 尝试将数组保存到数据库

使用 writeToURL 方法将数组保存到文件

如何将一组自定义结构保存到 plist swift