【发布时间】:2014-04-04 04:39:21
【问题描述】:
我想急切加载相关模型。但是,我不想获取整个相关模型,而是只检索它的 id。所以最后,我会有以下内容:
{
"error": false,
"invoices": {
"id": 5,
"biz_id": 7,
"doc_num": 0,
"type": 1,
"due_date": "0000-00-00",
"status": null,
"to": null,
"**related_model**": [1,2,3,4]
}
我宁愿避免循环。
更新
据我所知,如果没有循环,我就无法做到,我做了以下事情:
$data = array();
//get models
$models = IncomeDoc::with('relatedReceipts')
->where('type', '!=', 2)
->get()
->toArray();
foreach ($models as $model)
{
$model['related_receipts'] = array_pluck($model['related_receipts'], 'id');
$data[] = $model;
}
现在我的问题是:有什么方法可以在模型本身中进行数据操作?这段代码不干净,不能重复使用,我宁愿避免。
【问题讨论】:
-
这种方式通常无法获取
ids,但在得到结果后还需要做更多的事情,并且必须有foreign key才能获取相关模型。