Laravel自定义格式列表从Eloquent Collection到Form :: select

时间:2015-03-23 19:27:58

标签: php laravel laravel-5

我有实体城市。通常我可以使用City::lists("name", "id")来显示html Form :: select。

还需要在城市名称旁边的表单中显示国家/地区代码。是否有任何Eloquent Collection metods支持它建议使用foreach并手动构建阵列?

1 个答案:

答案 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')