Disclaimer: I am new to Laravel and my understanding of OOP principles isn't that great as of yet.
What is the proper way to serve data from an existing MySQL database. I have been researching Eloquent and while it seems promising, I am a bit confused on how to implement it or perhaps its benefit. I am converting an existing ERP system to the Laravel framework. This includes some relatively complex SQL queries. For instance one of the simpler queries would be retrieving sales orders. This query joins serveral tables. Should I create a model for all tables involved and then within the controller create a function that runs the eloquent query?
I have read that it is best to make the model more of the "configuration file" for the database table. Does this mean to run my queries directly in the controller or is it ok to create functions within the model to return custom query results (ie joins, etc)?
Definitely agree with @egarcia that you take a look at the Laravel from scratch series here on Laracasts. It'll save you a lot of headaches down the road.
Yes, you should create a model for each table, except if you have any pivot tables. You don't need a model for them.
Learn about creating relationships between models. You'll need this for eloquent.
To start with I'd keep things simple by doing your queries in the controller. You can always refractor later.
You could add query scopes to your models to tidy up big queries a bit.