如何在OctoberCMS的联接表中使用where子句?

时间:2019-08-20 01:16:39

标签: php mysql laravel octobercms

我正在将Laravel 5与OctoberCMS一起使用。 我有几种型号,需要加入。

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

我在下面尝试的操作会导致此错误消息。

  

“ SQLSTATE [42S22]:找不到列:1054'where子句'中的未知列'app_process'(SQL:从BYAPPS_apps_payment_data中选择count(*)作为聚集,其中pay_type!= 1并且{home / ljw / public_html / byapps_cms / vendor / laravel / framework / src / Illuminate / Database / Connection.php

上的第664行上的amount = 0和app_process!= 8)“

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();
}

我在这里错了什么?拜托,有人帮我...!_!

1 个答案:

答案 0 :(得分:0)

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

$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();