【问题标题】:Laravel 4 - How to get the data from the foreign table from each item in collectionLaravel 4 - 如何从集合中的每个项目的外部表中获取数据
【发布时间】:2015-01-09 22:20:35
【问题描述】:

我有一个包含以下列的StandardOverall 表:

sto_id | sto_transaction_id | sto_standard_id | sto_count | sto_total

还有一个包含以下列的Standard 表:

std_standards_id | std_code | std_description | std_notes

StandardOverall 表中的sto_standard_id 是Standard 表中std_standards_id 的外键。

我返回 StandardOverall 表中属于 sto_transaction_id 的所有行。我怎样才能从一个集合中返回外部表中的数据?此代码在控制器中:

$transactionID = Session::get('transactionID');
$standardStats = StandardOverall::whereID($transactionID)->get();

StandardOverall 模特:

class StandardOverall extends Eloquent {

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'sto_stat_overall';
    protected $primaryKey = 'sto_id';


    public function Standards() {
        return  $this->belongsTo('Standards');
    }

    public function getStandards() {
        return $this->hasOne('Standards', 'std_standards_id', 'sto_standard_id')->with('std_description');
    }

    public function scopewhereID($query, $transactionID) {
         return $query->where('sto_transaction_id', $transactionID);
    }
}

所以我想要标准总表中的计数和总列以及标准表中的链接代码和描述。这可能吗?

【问题讨论】:

    标签: php laravel laravel-4 relationship


    【解决方案1】:

    你可以试试这个:

    $transactionID = Session::get('transactionID');
    
    $standardStats = StandardOverall::with(['standards' => function($query) {
    
        $query->select(
           'std_standards_id', 'std_code', 'std_description', DB::raw('count(*) as count')
        )->groupBy('std_standards_id');
    
    }])->whereID($transactionID)->get();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-21
      • 2015-06-24
      • 2021-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多