我有实体城市。通常我可以使用City::lists("name", "id")
来显示html Form :: select。
还需要在城市名称旁边的表单中显示国家/地区代码。是否有任何Eloquent Collection metods支持它建议使用foreach并手动构建阵列?
答案 0 :(得分:4)
您可以在此处使用attribute accessors。将其添加到您的模型中:
public function getNameWithCountryCodeAttribute(){
return $this->attributes['name'] . ' ' . $this->attributes['country_code'];
}
然后在lists()
中使用该动态属性。请注意,您必须首先获取集合,因此实际上在集合上调用lists()
而不是查询构建器。
City::all()->lists('nameWithCountryCode', 'id')
将查询的列减少到所需的最小值:
City::get(['id', 'name', 'code'])->lists('nameWithCountryCode', 'id')