2015-07-22 3 views
1

У меня есть статьи с категориямиСоглашения о присвоении ярких отношений

много статей каждая статья относится к одной категории.

каждая категория имеет много статей

название статьи дб «статьи»

имя categoery БД «article_categories»

class Article extends Model 
{ 
    public function category() 
    { 
     return $this->belongsTo('App\ArticleCategory'); 
    } 
} 
class ArticleCategory extends Model 
{ 
    public function articles() 
    { 
     return $this->hasMany('App\Article'); 
    } 
} 

теперь мой вопрос: как я должен назвать столбец в статьи, в которых будет храниться идентификатор категории?

Я попытался назвать его:

article_category_id 
articleCategory_id 
article_categories_id 
articleCategories_id 

все они не работают так, как будто я

$article->category 

красноречивым работает этот запрос:

select * from `article_categories` where `article_categories`.`id` is null limit 1 

благодаря

ответ

0

If у тебя есть ль с именованием полей, которые вы можете установить свои собственные ключи:

public function category() 
{ 
    $this->belongsTo('App\ArticleCategory', 'local_key', 'parent_key'); 
} 

так что вы не должны знать наименования convenctions используемого красноречиво.

+0

Спасибо, я знаю это, просто пытаясь понять, что имя столбца будет делать он работает без указания своего имени –

0

article_category_id должен быть правильным.

вы можете попробовать заменить этот код

class Article extends Model 
{ 
    public function category() 
    { 
     return $this->belongsTo('App\ArticleCategory'); 
    } 
} 

на код ниже, если это будет работать класса Статья расширяет Model

{ 
    public function category() 
    { 
     return $this->belongsTo('App\ArticleCategory', 'article_category_id'); 
    } 
} 
+0

его работы, но я хочу, чтобы он работал, не сообщив ему имя столбца, какой столбец он ищет? так как я пытаюсь понять именование –

+1

попробуйте этот. класс Статья распространяется Модель { Публичная функция articleCategory() { { return $ this-> принадлежит к (App \ ArticleCategory '); } }. Я думаю, у меня были такие проблемы. я нашел это странным. что я сделал, это изменение имени метода на имя модели, которое оно ссылается на форму camelcase. – dakine

+0

yap этот один рабочий .. поэтому я действительно не могу понять, что такое happeing. Я знаю, что имя функции не влияет на запрос –

Смежные вопросы