У меня есть две таблицы «Компания» и «Департамента»Как сделать подсчет записей в Yii Framework?
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))
Im создания новых записей, обновление, удаление и показывать все записи .. Но сейчас я хочу показать Общее количество отделов для конкретного company..For пример:
Компания A имеет 3 отдела Компания B имеет 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, просто пытаясь узнать юй ..
Я уже определил отношения в Департаменте \t 'возвращение массива ( \t \t \t 'отделов => массив (самообеспечение :: HAS_MANY, 'Отдел', 'CompanyID')' и в модели компании 'возвращение массива ( \t \t \t 'компания'=> массив (самообеспечение :: BELONGS_TO, 'Компании', 'Compa nyId '), \t \t); ' –
Тогда часть кода, которую я поделил в своем ответе, будет работать для подсчета числа сотрудников компании. – yetanotherse
Ah Спасибо, это сработало ... –