我说过使用此查询获取对象的简单示例:
return App\models\SuccessIndicatorYearWeight::find(1);
这将返回:
{
success_indicator_year_weight_id: "108",
success_indicator_id_fk: "174",
year_id_fk: "1",
criteria_excel: "05-05-2015",
criteria_very_good: "08-05-2015",
criteria_good: "11-05-2015",
criteria_fair: "15-05-2015",
criteria_poor: "20-05-2015",
created_by: "4",
create_date: "2015-05-01 21:40:35",
updated_by: "4",
update_date: "2015-05-02 06:49:30",
}
现在我想从对象只返回这些属性,criteria_excel
,criteria_very_good
,criteria_fair
,criteria_poor
。
我已经尝试过这些:
return App\models\SuccessIndicatorYearWeight::find(1)->pluck('criteria_excel', 'criteria_very_good', 'criteria_fair', 'criteria_poor');
和
return App\models\SuccessIndicatorYearWeight::find(1)->select('criteria_excel', 'criteria_very_good', 'criteria_fair', 'criteria_poor')->get();
并且是不成功的。
一个简单的解决方法是这样的:
return App\models\SuccessIndicatorYearWeight::whereId(1)->select('criteria_excel', 'criteria_very_good', 'criteria_good', 'criteria_fair', 'criteria_poor')->get();
但是,我想知道是否还有其他方法仅返回对象的选定属性。
如果在返回JSON(或数组)时始终只返回那些字段,则可以protected $visible = ['fields', 'you', 'need', '...'];
在模型中使用。
http://laravel.com/docs/5.0/eloquent#converting-to-arrays-or-json
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句