Задать вопрос
@javanub

Отношения в laravel, где ошибка? Почему не видит таблицу к которой делаю связь?

Таблица новостей
class NewsModel extends Model
{
    protected $primaryKey = 'id';
    protected $table = 'news';

    public function country()
    {
        return $this->hasOne(CountryModel::class);
    }
}


Таблица стран
class CountryModel extends Model
{
    protected $primaryKey = 'id';
    protected $table = 'country';
    public $timestamps = false;

    public function news()
    {
        return $this->belongsTo(NewsModel::class);
    }
}


Контроллер
public function all()
    {
        $news = NewsModel::find(1);
        return view('welcome', [ 'news' => $news]);
    }


Вьюха
Пытаюсь связать таблицу новостей с таблицей страна, но связи нет.
{{ dd($news->country->country) }}
  • Вопрос задан
  • 620 просмотров
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
@Nimfus
1. Стоит проверить наличие соответствующих ключей в таблицах https://laravel.com/docs/5.3/eloquent-relationship...
2. Посмотреть какую ошибку дает вытаскивание параметра из country
3. Переопределить ключи вручную
4. Тестировать как указал автор ответа выше
Ответ написан
Комментировать
@Novikofff
PHP Developer
Попробуй так
{{ dd($news->country()->first()) }}

Или
{{ dd($news->load('country')) }}
Ответ написан
Big_person
@Big_person
Логичнее было бы

{{ dd($news->country->name) }}

Или у вас в таблице country есть поле country?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы