What is the correctly table name of this table in Laravel 3/4?
Structure
image_projects (id, project_id, image, ext, size, created_at, updated_at, active)
image_projects
imageprojects
imageProjects
And, how I can create the Model?
app/models/image_projects.php
app/models/imageprojects.php
app/models/imageProjects.php
app/models/image/projects.php
app/models/projects/image.php
You cannot give underscore in table name.
Nope. Underscores are perfectly legal in table names.
Tables are used for storing data in the database. The naming convention for a table name are as follows: Each table name should have a “tbl” prefix. The next word after the “tbl” prefix should be the table name.
There are no direct technical issue with using an underscore in the name. In fact, I do it quite often and find it helpful. Ruby even auto generate underscores in column names and SQL Servers own system objects use underscores too.
It makes no difference what you name your table, as long as you then name the file & class in singular form, with the class name starting with an uppercase letter.
You can use any of the following options:
Table name: image_projects
File name: ImageProject.php
Class name: ImageProject
Table name: imageprojects
File name: Imageproject.php
Class name: Imageproject
Table name: imageProjects
File name: ImageProject.php
Class name: ImageProject
In this case you'll have to set the $table
property yourself.
Remember: If you don't name your class in singular form of what you name your table, you'll have to manually set it in your model:
class ImageProjects extends Eloquent
{
public $table = 'image_projects';
}
Current Laravel version 4.2 table name convention works OK in that way:
Table name: image_projects
File name: ImageProject.php
Class name: ImageProject
The camel-case class name forced me with an exception to use table name underscores.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With