2016-06-07 12 views
0

Я собираюсь создать полиморфные отношения в Laravel, но мои таблицы настолько стары, что их соглашения об именах не соответствуют laravel. Могу ли я это сделать и как?Полиморфные отношения в Laravel naming convstion

+0

Лучше добавить больше информации о текущей схеме базы данных. – Doom5

+0

Можете вы добавить свой код? – IshaS

ответ

0

Конечно, вы можете напрямую указать имена таблиц и имена столбцов FK.
Посмотрите Realtion docs и при необходимости в Laravel API или source code

Если у вас есть

posts 
    id - integer 
    title - string 
    body - text 

comments 
    id - integer 
    post_id - integer 
    body - text 

likes 
    id - integer 
    likeable_id - integer 
    likeable_type - string 

Тогда ваш код будет

<?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'); 
    } 
} 
Смежные вопросы