gpt4 book ai didi

php - 如何在 Yii Framework 中进行记录计数?

转载 作者:行者123 更新时间:2023-11-29 07:21:15 25 4
gpt4 key购买 nike

我有两个表“公司”和“部门”

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))

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

A公司有3个部门B公司有2个部门。我只是想统计一下部门的数量。输出电流为

ID: 1   
Company Name: CompanyA
Email: Contact@companyA.com

但我想展示

ID: 1   
Company Name: CompanyA
Email: Contact@companyA.com
Total Department: 3 //it can be different

这只是一条记录,但我的输出中显示了很多公司..部门有不同的表..我必须更改哪些代码才能显示部门总数

我在 Gii 中使用 CRUD 操作创建的 Controller “CompanyController”和“DepartmentController”具有简单的功能..

这是我的index.php

<h1>Companies</h1>

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

这是我的_view 文件

<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); ?>

我不确定应该在哪里计算数据。我已经在部门 Controller 中编写了一个用于计算部门总数的函数,但它在这里不起作用,这是我的函数

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...';
}

}

当我在我的 View 中显示时,它不起作用..它说 property Department.totaldept 未定义

<b><?php echo CHtml::encode($data->getAttributeLabel('Total Departments')); ?>:</b>
<?php echo CHtml::encode(Department::model()->totalDept); ?>
<br />

无论我试图做什么,这是正确的方法还是我做错了,我只是 yii 的新手,只是想学习 yii..

最佳答案

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

在您的情况下 - 公司有很多部门,因此在您的公司模型中,定义关系如下(假设您使用的是 Yii 1.x)

public function relations()
{
return array(
// other relationships
'departments' => array(self::HAS_MANY, 'Department', 'CompanyId'),
);
}

定义此关系后,您可以在 _view 文件中获取公司部门的计数,如下所示。

echo count($data->departments);

关于php - 如何在 Yii Framework 中进行记录计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36083667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com