使用laravel在模型中映射字段名称

时间:2015-04-30 23:28:29

标签: php laravel eloquent

有没有办法将字段名称映射到数据库中的模型中的不同属性名称?例如,如果数据库的字段名称为customer_id,但我想以这种方式使用eloquent Customer::get(['id'])我尝试使用getAttribute方法但是在eloquent尝试获取值后调用

1 个答案:

答案 0 :(得分:14)

你可以使用访问器来处理这些属性,但是没有办法用核心的雄辩方式来查询它们。

但不要害怕!使用此程序包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尚不支持,但这是一两天的问题。 {已经推动了{1}}支持。

相关问题