У меня есть две таблицы «Компания» и «Отдел».
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))
Я создаю новые записи, обновляю, удаляю и показываю все записи. Но теперь я хочу показать общее количество отделов для конкретной компании. Например:
Компания А имеет 3 отдела Компания Б имеет 2 отдела. Я просто хочу подсчитать количество отделов. Выходной ток
ID: 1
Company Name: CompanyA
Email: [email protected]
но я хочу показать
ID: 1
Company Name: CompanyA
Email: [email protected]
Total Department: 3 //it can be different
Это всего лишь одна запись, но у меня есть много компаний, отображаемых в моем выводе. У отдела есть другая таблица.. какой код мне нужно изменить, чтобы показать общее количество отделов.
У меня есть контроллеры «CompanyController» и «DepartmentController», созданные с использованием операций CRUD в Gii, имеют простые функции.
Это мой 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); ?>
Я не уверен, где следует подсчитывать данные. Я написал функцию для подсчета общего количества отделов в контроллере отдела, но она не работает, вот моя функция.
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 не определено
<b><?php echo CHtml::encode($data->getAttributeLabel('Total Departments')); ?>:</b>
<?php echo CHtml::encode(Department::model()->totalDept); ?>
<br />
что бы я ни пытался сделать, это правильный путь или я делаю это неправильно, я просто новичок в yii, просто пытаюсь изучить yii..