Рассмотрим следующие запросы READ и WRITE:
Читать
// Retrieves a person (and their active game score if they have one) $sql = "SELECT CONCAT(people.first_name,' ',people.last_name) as 'name', people.uniform as 'people.uniform', games.score as 'games.score' FROM my_people as people LEFT JOIN my_games as games ON(games.person_id = people.id AND games.active = 1) WHERE people.id = :id"; $results = DB::select(DB::raw($sql),array("id"=>$id));
Написать
// Saves a person $person = new People; $person->data = array('first_name'=>$input['first_name'], 'last_name'=>$input['last_name'], 'uniform'=>$input['uniform']); $personID = $person->save(); // Save the game score $game = new Games; $game->data = array('person_id'=>$personID, 'active'=>$input['active'], 'score'=>$input['score']); $game->save();
Поскольку мои чтения настолько разнообразны, зачем мне нужно их абстрагировать в Eloquent ORM от Laravel (или любой ORM), тем более, что я использую PDO (который имеет 12 разных драйверов баз данных)? Единственное преимущество, которое я могу видеть на данный момент, – это если я захочу переименовать поле базы данных, тогда это будет проще сделать с помощью ORM. Я не желаю платить цену за большую абстракцию / неясность за это.