【发布时间】:2014-11-06 00:46:56
【问题描述】:
在哪里放置 Laravel Eloquent 模型的辅助方法的最佳位置?
目前我正在创建一个扩展Eloquent 的BaseModel 并在其中添加额外的功能。然后我所有的模型都扩展BaseModel。它有效..但感觉不对。
例如是我目前的 BaseModel...
class BaseModel extends Eloquent {
protected static function getEnumValues($table, $field)
{
$test=DB::select(DB::raw("show columns from {$table} where field = '{$field}'"));
preg_match('/^enum\((.*)\)$/', $test[0]->Type, $matches);
foreach( explode(',', $matches[1]) as $value )
{
$enum[] = trim( $value, "'" );
}
return $enum;
}
protected static function convertDate($date)
{
if(!isset($date)) return;
$new_date = DateTime::createFromFormat('d/m/Y', $date);
$formated_date = $new_date->format('Y-m-d');
return $formated_date;
}
}
我在我的模型中使用它们...
public static function boot()
{
parent::boot();
static::creating(function($campaign)
{
$campaign->sale_date = static::convertDate($campaign->sale_date);
$campaign->sold_date = static::convertDate($campaign->sold_date);
});
}
这样的模型辅助方法最好放在哪里?
感谢反馈,谢谢!
【问题讨论】:
标签: laravel laravel-4 eloquent