2016-12-08 8 views
0
Sample Database 
Id   scholar_birthday 
1   2001-12-05 
2   2002-10-15 
3   1991-12-19 
4   1990-02-25 

У меня возникли проблемы с моим кодом в получении данных из столбца базы данных scholar_birthday. Я хочу здесь, чтобы получить год, месяц и день индивидуально, чтобы я мог передавать их как параметры на createFromFormat().Доступ к данным со дня рождения, чтобы получить в возрасте

$input = Scholar::select('scholar_birthday')->get(); 
$strFromArr = serialize($input); 
$format = 'Y/m/d'; 
$year = 'Y'; 
$month = 'm'; 
$day = 'd'; 
dd($format); 
$date = Carbon::createFromFormat($year,$month,$day, $strFromArr); 
dd($date); 

Но результат (возвращаемое значение дд()) является:

Четыре цифры года не может быть найден

Кто-нибудь есть идеи о том, как реализовать это правильно?

+0

может быть, вы могли бы автоматически анализировать значение объекта углерода, путем добавления scholar_birthday к атрибуту private $ date в модели (https://laravel.com/docs/5.3/eloquent-mutators#date-mutators) – mirko911

+0

@ mikro911 - Сэр фактически я использую laravel 5.0 в своем проекте. – Gatzmar

ответ

0

Это лучше всего обрабатывается в запросе mysql.

SELECT YEAR(scholar_birthday) as year, 
     MONTH(scholar_birthday) as month, 
     DAY(scholar_birthday) as day 
FROM Scholar 

Теперь я не полностью знаком с моделью Laravel, но похоже, что вы можете сделать это ...

$fields = "YEAR(scholar_birthday) as year, MONTH(scholar_birthday) as month, DAY(scholar_birthday) as day"; 
$input = Scholar::select($fields)->get();