In your example, you just need to make the inverse relation into a belongsToMany and add your custom table again, along with the foreign and local keys (reversing the order from the other model). If you use a hasMany relationship, it can only be paired with a belongsTo relationship and no extra database tables are required. Therefore, you put those references in the pivot table.Īs a rule of thumb, if you use a belongsToMany relationship, it can only be paired with another belongsToMany relationship and means that you have a third pivot table. Therefore it would be impossible to store a city_id or a car_id on either model because each would have more than one. However, if you look at one car type you will also know that it can be driven in many different cities. Well, in one city people will drive many different types of car. You want a relationship to show the types of cars people drive in each city. For example, imagine you have your City model and you also have a Car model. The pivot table stores references to both the models and you can declare it as a second parameter in the relationship declaration. The problem stems from the fact that my issues table (by design) includes an itemid column, which is an index but not the primary key. However, a Many To Many relationship requires a third database table, called a pivot table. I've setup 'belongs to many' relationships so that my issues, tags and issuestags (intermediary) tables can talk to each other but I've run into a problem whereby tags are being output against the wrong issues. Therefore, you would store that country on the City model itself (as country_id or something like that). However, each City only exists in one country. For instance, you might have a Country model and a City model. This is because the reference to the relation is stored on the owned model's table itself. The key difference is that in a One To Many relationship, you only need the two database tables that correspond to the related models. They are both distinct relationship types and each require a different database structure - thus they take different parameters. HasMany is used in a One To Many relationship while belongsToMany refers to a Many To Many relationship.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |