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')
我有实体城市。通常我可以用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')