`Попытка получить свойство необъекта` с использованием отношения` hasManyThrough` laravel 5

Я пытаюсь разработать блог, используя Laravel 5 в котором я должен показать комментарий вместе с пользователем на пост.

Вот моя схема таблицы базы данных.

User

  • Я бы
  • название

Posts

  • Я бы
  • POST_CONTENT
  • Идентификатор пользователя

Comments

  • Я бы
  • комментарий
  • Идентификатор пользователя
  • post_id

Вот мой User Model

public function posts()
{
return $this->hasMany('App\Models\Posts');
}

public function comments(){
return $this->hasManyThrough('App\Models\Comments','App\Models\Posts');
}

Вот мой Posts Model

public function user()
{
return $this->belongsTo('App\Models\User');
}

public function comments(){
return $this->hasMany('Ap\Models\Comments');
}

Вот мой Comment Model

public function posts()
{
return $this->belongsTo('App\Models\Posts');
}

public function user(){
return $this->posts->name;
}

Вот мой код, как я получаю доступ user name

$comments = Comments::find(1);
$comment['comment'] = $comments->comment;
$comment['user_name'] = $comments->name;
$comment['post_id'] = $comments->posts->id;

может быть, я не в правильном направлении? если я делаю правильно, то почему это не работает.

0

Решение

В 5 уровне вы не называете модель тем, что делаете. Поскольку модели хранятся в папке приложения, просто позвоните, как. Плюс я думаю, что вам нужно определить отношения

class User extends Model {

public function phone()
{
return $this->hasOne('App\Phone');
}

}

class Phone extends Model {

public function user()
{
return $this->belongsTo('App\User');
}

}

$phone = Phone::find(1);

Для случая с внешними ключами и больше относительно отношений Eloquent в laravel 5 просто следуйте документации на веб-сайте laravel. Обязательно посмотрите на динамические свойства, которые разрешены eloquent

http://laravel.com/docs/5.0/eloquent

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]