Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何计算Yii框架中的记录?

如何计算Yii框架中的记录?
EN

Stack Overflow用户
提问于 2016-03-18 03:53:00
回答 2查看 573关注 0票数 0

我有两张桌子“公司”和“部门”

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE TABLE Department (
id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, 
deptName VARCHAR(40),
CompanyId TINYINT UNSIGNED NOT NULL,
FOREIGN KEY (CompanyId) REFERENCES Companies(id) ON DELETE CASCADE,
UNIQUE (deptName))

CREATE TABLE Company (
id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
companyName VARCHAR(40),
email VARCHAR(60),
UNIQUE (companyName))

我正在创建新的记录,更新,删除和显示所有的记录。但是现在我想显示特定company..For示例的部门总数:

A公司有3个部门,B公司有2个部门。我只想数几个部门。输出电流

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ID: 1   
Company Name: CompanyA  
Email: Contact@companyA.com

但我想展示一下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ID: 1   
Company Name: CompanyA  
Email: Contact@companyA.com
Total Department: 3 //it can be different

这只是一个记录,但我有很多公司在我的产出中显示。部门有不同的桌子。我需要更改哪些代码来显示部门总数?

我使用Gii中的CRUD操作创建了控制器'CompanyController‘和'DepartmentController’,它们具有简单的函数。

这是我的index.php

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<h1>Companies</h1>

<?php $this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'_view',
)); ?>

这是我的_view文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="view">

<b><?php echo CHtml::encode($data->getAttributeLabel('id')); ?>:</b>
<?php echo CHtml::link(CHtml::encode($data->id), array('view', 'id'=>$data->id)); ?>
<br />

<b><?php echo CHtml::encode($data->getAttributeLabel('companyName')); ?>:</b>
<?php echo CHtml::encode($data->companyName); ?>

我不知道该在哪里数数数据。我已经写了一个计算部门主管部门总数的函数,但它不在这里工作,这是我的功能。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public function totalDept()
{
    $CompanyId=1;
    $totalDept=Department::model()->findAll($CompanyId);
    $numberOfDept=count($totalDept);
    if ($numberOfDept> 0) {
        echo "There are" .$numberOfDept. "in this company";
    } else {
        echo 'This company has No Department so far...';
    }

}

当我在我看来它不起作用。它说属性Department.totaldept没有定义

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<b><?php echo CHtml::encode($data->getAttributeLabel('Total Departments')); ?>:</b>
<?php echo CHtml::encode(Department::model()->totalDept); ?>
<br />

无论我试图做什么,这是正确的方式,还是我做错了,我只是新手,只是试着去学习。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-18 04:05:28

按照Yii的惯例。您应该首先在模型文件中定义CompanyDepartment之间的关系。

在您的案例中- Company有许多部门,所以在您的公司模型中,定义如下关系(假设您使用的是YII1.x)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public function relations()
{
    return array(
        // other relationships
        'departments' => array(self::HAS_MANY, 'Department', 'CompanyId'),
    );
}

一旦定义了这种关系,您就可以获得公司部门的计数,如下面_view文件所示。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo count($data->departments);
票数 1
EN

Stack Overflow用户

发布于 2016-03-18 06:31:09

您可以简单地在Company AR类的relations()方法中定义一个“属性”,它将执行统计查询(默认情况下是计数)。您可以使用"self::STAT“作为关系的类型,请参见下面的示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public function relations()
{
    return array(
        // other relationships
        'totalOfdepartments' => array(self::STAT, 'Department', 'CompanyId'),
    );
}

您可以在这里获得更多信息:http://www.yiiframework.com/doc/guide/1.1/en/database.arr#statistical-query

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36083667

复制
相关文章
YII 框架学习[1] —— 引入Yii框架
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/details/51736440
泥豆芽儿 MT
2018/09/11
1.4K0
YII 框架学习[1] —— 引入Yii框架
windows Yii框架的安装
Yii框架的安装 1)下载appserv(里面包含了 php, mysql, apache) 2)安装 appserv 3)到http://www.yiichina.com/download/下载Yi
joshua317
2018/04/16
1.2K0
windows Yii框架的安装
composer安装Yii框架
安装的过程中要求输入:Token一脸懵逼,搜索资料,看到这个东西要在github里面生成一下。 然后进入到github按照图片的步骤去操作吧! Tags: None Archives QR Cod
简单、
2018/07/18
8670
yii外部action中如何渲染页面
yii的controller中支持调用外部的action类(见《在controller中使用外部的action》)
跑马溜溜的球
2020/12/07
6950
如何在yii的controller中调用外部action
在yii中,一个controller会包含若干个action。有时为了重用或代码管理等目的,我们希望这些action可以单独定义成一个类,然后在 controller中使用。那么在yii中要如何实现呢?
跑马溜溜的球
2020/12/07
1.7K0
在php的yii2框架中整合hbase库的方法
Hbase有两套thrift接口(thrift1和thrift2),但是它们并不兼容。根据官方文档,thrift1很可能被抛弃,本文以thrift2整合为例。
子润先生
2021/07/13
6280
PHP框架-Yii3
之前写过一篇关于现代的PHP框架的文章:https://cloud.tencent.com/developer/article/1330500
jerryteng
2018/09/28
8.4K1
PHP框架-Yii3
yii2中LinkPager增加总页数和总记录数的实例
本文介绍了php中LinkPager增加总页数和总记录数,分享给大家,也给自己留个笔记
用户2323866
2021/07/02
8970
MapReduce 计算框架如何运作
分布式计算需要将不同服务器上的相关数据合并到一起进行下一步计算,这就是 shuffle
Michael阿明
2021/09/06
3790
点击加载更多

相似问题

Yii :如何计算模型中的记录?

119

更新模型中的记录- YII框架

32

Yii框架如何更新所有记录?

30

无法在php yii框架中创建记录

12

在Yii框架中检索记录的子模型

26
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文