Select 来自具有最大日期和特定外键的记录的信息

Select info from a record that has max date and specific foreign key

我有两个名为barangrequest的table,我想在我的gridview中显示barangpeminjam列的值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.

的任何价值的原因