在Eloquent

时间:2016-10-06 14:40:29

标签: laravel eloquent

我在数据库中有3个不同的字段:citystatecountry。如何在Eloquent中定义另一个属性以从这3个字段中返回一个字符串?

第一种方法,但它不起作用:

protected $address = "";

public function getAddress() : string {
  return $this->city . $this->state . " - " . $this->country;
}

2 个答案:

答案 0 :(得分:10)

如果您想要一个未在模型中定义的新属性,则需要将该属性附加到模型中。

/**
 * The accessors to append to the model's array form.
 *
 * @var array
 */
protected $appends = ['address'];

并定义属性方法:

/**
 * Get the address.
 *
 * @return string
 */
public function getAddressAttribute()
{
    return $this->city . $this->state . " - " . $this->country;
}

答案 1 :(得分:0)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <EditText android:id="@+id/et" android:layout_width="match_parent" android:layout_height="200dp" android:inputType="textPersonName" android:padding="10dp" android:text="" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:id="@+id/keyboard" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="keyboard" /> <Button android:id="@+id/camera" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="Camera" /> </LinearLayout> <LinearLayout android:id="@+id/cameraLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/take" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Take" /> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <GridLayout android:id="@+id/grid" android:layout_width="match_parent" android:layout_height="match_parent" android:columnCount="5"> </GridLayout> </ScrollView> </LinearLayout> </LinearLayout> 添加到方法名称以使其正常工作:

Attribute

https://laravel.com/docs/5.3/eloquent-mutators#defining-an-accessor