2016-06-07 1 views
0

Je vais créer des relations polymorphes dans Laravel mais mes tables sont si anciennes et ses conventions de nommage ne sont pas d'accord avec Laravel. Puis-je faire cela et comment?Relations polymorphes dans la convocation de nommage Laravel

+0

ajouter mieux plus d'informations sur votre schéma de base de données en cours. – Doom5

+0

Pouvez-vous ajouter votre code? – IshaS

Répondre

0

Vous pouvez bien sûr définir directement le nom de votre table et les noms de colonnes FK.
Regardez sur realtion docs et si nécessaire Laravel API ou source code

Si vous avez

posts 
    id - integer 
    title - string 
    body - text 

comments 
    id - integer 
    post_id - integer 
    body - text 

likes 
    id - integer 
    likeable_id - integer 
    likeable_type - string 

Ensuite, votre code sera

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Like extends Model 
{ 
    /** 
    * Get all of the owning likeable models. 
    */ 
    public function likeable() 
    { 
     return $this->morphTo('likeable', 'likeable_type', 'likeable_id'); 
    } 
} 

class Post extends Model 
{ 
    /** 
    * Get all of the post's likes. 
    */ 
    public function likes() 
    { 
     return $this->morphMany('App\Like', 'likeable', 'likeable_type', 'likeable_id'); 
    } 
} 

class Comment extends Model 
{ 
    /** 
    * Get all of the comment's likes. 
    */ 
    public function likes() 
    { 
     return $this->morphMany('App\Like', 'likeable', 'likeable_type', 'likeable_id'); 
    } 
}