2017-02-17 29 views
0

Я работаю с Laravel 5.4. Я использую Eloquent ORM. Я создал таблицу как страны и государства. Оба dislpay, как показано ниже:Не удается получить данные о взаимоотношениях с использованием Laravel Eloquent ORM

Страны Таблица:

enter image description here

Штаты Таблица:

enter image description here

Теперь, я написал два метода, чтобы установить отношения между странами и континентами таблицы.

Страна Модель:

public function states() 
{ 
    return $this->hasMany('App\Models\Masters\State')->select('*'); 
} 

, модель:

public function country() 
{ 
    return $this->belongsTo('App\Models\Masters\Country')->select('name as country_name'); 
} 

Теперь я собираюсь создать функциональные возможности редактирования, так что я не могу получить название страны.

Я написал запрос в

$state = State::with('country')->find($id); 
return Response($state); 

Здесь, я получил только данные о состоянии и данные о стране как нуль.

Итак, что мне нужно изменить, чтобы получить данные о стране?

ответ

3

Вы не должны использовать select в своих отношениях. Когда вы используете только имя страны, Laravel не сможет связать это с вашим состоянием, так что это не сработает.

Вы должны определить свои отношения, как это:

public function country() 
{ 
    return $this->belongsTo(\App\Models\Masters\Country::class); 
} 

public function states() 
{ 
    return $this->hasMany(\App\Models\Masters\State::class); 
} 

без выбирает

+0

Nabialek Спасибо. Работает. –