【问题标题】:How can I use where clause in the joined tables in OctoberCMS?如何在 OctoberCMS 的联接表中使用 where 子句?
【发布时间】:2019-08-20 01:16:39
【问题描述】:

我在 Laravel 5 中使用 OctoberCMS。 我有几个模型,它们需要加入。

我有“PaymentData”模型和“AppsData”模型。他们都有“mem_id”列,我想根据“PaymentData”模型的数据从“AppsData”模型中获取“app_process”列的值。

我在下面的尝试导致了此错误消息。

“SQLSTATE[42S22]:找不到列:1054 'where 子句'中的未知列'app_process'(SQL:从BYAPPS_apps_payment_data 中选择计数(*)作为聚合,其中pay_type!= 1 和amount = 0 和 app_process != 8)" 在 /home/ljw/public_html/byapps_cms/vendor/laravel/framework/src/Illuminate/Database/Connection.php 的第 664 行

PaymentData 模型

class PaymentData extends Model
{
    use \October\Rain\Database\Traits\Validation;

    public $table = 'BYAPPS_apps_payment_data';

    public $rules = [
    ];

    public $hasOne = [
      'joins' => [
        'Jiwon\Byapps\Models\AppsData',
        'key' => 'mem_id',
        'otherKey' => 'mem_id'
      ]
    ];
}

AppsData 模型

class AppsData extends Model
{
    use \October\Rain\Database\Traits\Validation;

    public $table = 'BYAPPS_apps_data';

    public $rules = [
    ];
}

我在 home.htm 中尝试过的内容

use Jiwon\Byapps\Models\AppsData;
use Jiwon\Byapps\Models\PaymentData;

function onGetAppChartData()
{

  $this['appsFree'] = PaymentData::where('pay_type', '!=', '1')
                      ->where('amount', '=', '0')
                      ->where('app_process', '!=', '8')
                      ->count();
}

我在这里做错了什么?请有人帮助我...!_!

【问题讨论】:

  • BYAPPS_apps_payment_data 表中似乎不存在“app_process”列。从 phpmyadmin 运行选择查询。
  • 是的,BYAPPS_apps_payment_data 表中不存在“app_process”列。它在“BYAPPS_apps_data”表中。这才是重点。我想加入这两个表并获取“app_process”值但失败了。 !_!

标签: php mysql laravel octobercms


【解决方案1】:

您可以尝试编写这样的自定义查询:

$this['appsFree'] =   \DB::table('BYAPPS_apps_payment_data as p')
            ->join('BYAPPS_apps_data as a', 'a.mem_id', '=', 'p.mem_id')
            ->where('p.pay_type', '!=', '1')
            ->where('p.amount', '=', '0')
            ->where('p.app_process', '!=', '8')
            ->count();

【讨论】:

猜你喜欢
  • 2016-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
相关资源
最近更新 更多