Select 来自具有最大日期和特定外键的记录的信息
Select info from a record that has max date and specific foreign key
我有两个名为barang
和request
的table,我想在我的gridview中显示barang
中peminjam
列的值table 其中 id_barang
(PK in request
table)等于 id_barang
(FK in barang
table),其中记录具有最新日期(request
table 中的 tanggal_request
列)。
我在 Barang.php
模型中做了这个:
$id_barang = $this->id_barang;
$criteria = new CDbCriteria;
$criteria->select = 'max(tanggal_request)';
$criteria->addColumnCondition(array('id_barang' => $id_barang));
$model = Request::model();
$value = $model->commandBuilder->createFindCommand(
$model->tableName(), $criteria)->queryScalar();
$hasil = $value;
return $hasil;
它确实向我显示了最大日期。我不知道如何显示 peminjam
。
我试过这个:
$criteria->select = '*';
...
$hasil = $value->peminjam;
但它是这样说的:
Trying to get property of non-object.
我也试过这个:
$criteria->select = '*';
...
$hasil = $value['peminjam'];
但它是这样说的:
Illegal string offset 'peminjam'.
看看这是否有效:
$id_barang = $this->id_barang;
$criteria = new CDbCriteria();
$criteria->select = 'peminjam';
$criteria->limit = "1";
$criteria->with = array(
'request' => array(
'together'=>true,
'order'=>"tanggal_request DESC",
'condition'=>"request.id = $id_barang"
)
);
$data = Barang::model()->find($criteria);
echo $data->peminjam;
您的代码似乎没问题,唯一的问题是您试图从 barang
table 获取 peminjam
列,但我没有看到该模型用于查询,也许这就是为什么您没有获得 peminjam
.
的任何价值的原因
我有两个名为barang
和request
的table,我想在我的gridview中显示barang
中peminjam
列的值table 其中 id_barang
(PK in request
table)等于 id_barang
(FK in barang
table),其中记录具有最新日期(request
table 中的 tanggal_request
列)。
我在 Barang.php
模型中做了这个:
$id_barang = $this->id_barang;
$criteria = new CDbCriteria;
$criteria->select = 'max(tanggal_request)';
$criteria->addColumnCondition(array('id_barang' => $id_barang));
$model = Request::model();
$value = $model->commandBuilder->createFindCommand(
$model->tableName(), $criteria)->queryScalar();
$hasil = $value;
return $hasil;
它确实向我显示了最大日期。我不知道如何显示 peminjam
。
我试过这个:
$criteria->select = '*';
...
$hasil = $value->peminjam;
但它是这样说的:
Trying to get property of non-object.
我也试过这个:
$criteria->select = '*';
...
$hasil = $value['peminjam'];
但它是这样说的:
Illegal string offset 'peminjam'.
看看这是否有效:
$id_barang = $this->id_barang;
$criteria = new CDbCriteria();
$criteria->select = 'peminjam';
$criteria->limit = "1";
$criteria->with = array(
'request' => array(
'together'=>true,
'order'=>"tanggal_request DESC",
'condition'=>"request.id = $id_barang"
)
);
$data = Barang::model()->find($criteria);
echo $data->peminjam;
您的代码似乎没问题,唯一的问题是您试图从 barang
table 获取 peminjam
列,但我没有看到该模型用于查询,也许这就是为什么您没有获得 peminjam
.