使用 laravel 映射模型中的字段名称
Mapping field name in model using laravel
有没有办法将字段名称映射到数据库到模型中的不同属性名称?例如,如果数据库的字段名称为 customer_id
但我想以这种方式使用 eloquent Customer::get(['id'])
我已经尝试使用 getAttribute 方法但它是在 [=15 之后调用的=] 已尝试获取值。
您可以使用访问器来处理此类属性,但无法通过核心 eloquent.
以这种方式查询它们
但不要害怕!使用这个包https://github.com/jarektkaczyk/eloquence,你可以轻松实现你想要的(特别是Mappable
):
// Customer model
protected $maps =[
'id' => 'customer_id',
'name' => 'customer_name',
...
];
// then you can do this:
$customer = Customer::where('name', 'whatever')->first();
// calls WHERE customer_name = ? sql
$customer->id; // customer_id column
$customer->name; // customer_name column
$customer->name = 'different name'; // set mutator works as well
它正在大力开发中,目前 select
尚不支持,但这是一两天的事情。 select
支持已推送。
有没有办法将字段名称映射到数据库到模型中的不同属性名称?例如,如果数据库的字段名称为 customer_id
但我想以这种方式使用 eloquent Customer::get(['id'])
我已经尝试使用 getAttribute 方法但它是在 [=15 之后调用的=] 已尝试获取值。
您可以使用访问器来处理此类属性,但无法通过核心 eloquent.
以这种方式查询它们但不要害怕!使用这个包https://github.com/jarektkaczyk/eloquence,你可以轻松实现你想要的(特别是Mappable
):
// Customer model
protected $maps =[
'id' => 'customer_id',
'name' => 'customer_name',
...
];
// then you can do this:
$customer = Customer::where('name', 'whatever')->first();
// calls WHERE customer_name = ? sql
$customer->id; // customer_id column
$customer->name; // customer_name column
$customer->name = 'different name'; // set mutator works as well
它正在大力开发中,目前 select
尚不支持,但这是一两天的事情。select
支持已推送。