【问题标题】:YII Inventory Control system issueYII 库存控制系统问题
【发布时间】:2013-07-25 15:08:09
【问题描述】:

伙计们帮我做到这一点。我是 YII 的新手。我想像这样显示每个项目的分支库存。

实际数据库

最好的方法是什么?

【问题讨论】:

  • 这里有一些文档可以帮助你yiiframework.com/doc/guide/1.1/en/quickstart.first-app
  • 我读过这个,但我的问题不同
  • Mohit 我不知道该怎么做...我需要将这些值存储在数组中还是有其他方法..
  • 你总是有4个分支,还是分支的数量是动态的?
  • 是的,它的动态......现在它是 4

标签: mysql activerecord yii inventory-management


【解决方案1】:

您正在寻找的是交叉表或数据透视表。这是一个链接:http://www.artfulsoftware.com/infotree/qrytip.php?id=523

【讨论】:

  • 是的,这就是我想要的,但是如何在 yii 活动记录中做到这一点
  • 活动记录是访问和修改对象的便捷方式,但不能无所不能。也许use DAO
  • 您将不得不编写自己的 SQL。要在网格中显示结果,您需要使用 CSqlDataProvider。 yiiframework.com/doc/api/1.1/CSqlDataProvider
【解决方案2】:

我一直在寻找同样的东西,并有一个使用 CSqlDataProvider 的解决方案。需要注意的是,使用 CSqlDataProvider 时它返回一个数组,而 CActiveDataProvider 返回一个对象。

这是型号代码

public function displayStock($id)
{
    $sql='SELECT product_id, COUNT(*) as productCount FROM stock WHERE assigned_to = 2 GROUP BY product_id';
    $dataProvider=new CSqlDataProvider($sql, array(


        'pagination'=>array(
            'pageSize'=>10,
        ),
    ));
    return $dataProvider;
}

这是 veiw 的代码

$stockDataProvider = Stock::model()->displayStock(Yii::app()->user->id);
$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'stock-grid',
    'ajaxUpdate' => true,
    'template'=>'{items}{summary}{pager}',
    'dataProvider'=>$stockDataProvider,
    'columns'=>array(

        'product_id',
        array(
                'name'=>'test',
                'value'=>'$data["productCount"]'
            ),


        array(
            'class' => 'CButtonColumn',
            'template' => '{view} {update}',

        ),

    ),
));

在模型中定义SQL语句时,可以看到我们已经将COUNT(*)设置为productCount。然后在视图中,我们在列数组中引用该名称,如下所示

array(
                'name'=>'test',
                'value'=>'$data["productCount"]'
            ),

因此,只需将 productCount 替换为您使用的名称即可。

我确信上面的代码可以做一些调整,即在查询等中使用绑定参数,但这对我有用。

非常欢迎任何 cmets 或改进。我才 8 个月进入 php 和 3 个月进入 yii。

【讨论】:

    猜你喜欢
    • 2018-03-12
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    • 2018-06-19
    相关资源
    最近更新 更多