【问题标题】:Select info from a record that has max date and specific foreign key从具有最大日期和特定外键的记录中选择信息
【发布时间】:2015-12-18 21:53:10
【问题描述】:

我有两个名为barangrequest 的表,我想在我的gridview 中显示barang 表中peminjam 列的值id_barangrequest 表中的PK)等于id_barangbarang 表中的 FK),并且记录具有最新日期(request 表中的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;

但它是这样说的:

试图获取非对象的属性。

我也试过这个:

$criteria->select = '*';
...
$hasil = $value['peminjam'];

但它是这样说的:

非法字符串偏移 'peminjam'。

【问题讨论】:

    标签: php mysql yii criteria


    【解决方案1】:

    看看这是否有效:

    $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 表中获取 peminjam 列,而我没有看到用于查询的模型,也许这就是您没有得到的原因peminjam 的任何值。

    【讨论】:

    • 您应该包括一些关于 OP 代码有什么问题以及您的代码如何修复它的解释
    • @Safira 您正在尝试从 barang 获取 peminjam 列,我没有看到用于查询的 thst 模型,也许这就是您没有获得任何价值的原因peminjam
    猜你喜欢
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多