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

Laravel custom format lists from Eloquent Collection to Form::select

我有实体城市。通常我可以用City::lists("name", "id")显示在htmlForm::select.

城市名称旁边的表格中也需要显示国家代码。是否有任何 Eloquent Collection 方法支持建议使用 foreach 并手动构建数组?

您可以在这里使用 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')