После нескольких попыток я не могу заставить красноречивую «связь» работать.
Я создал базу данных с MySQL Workbech, которая содержит следующие таблицы:
- Актеры
- ActorData
- Национальность
Их отношение изображения:
В PHP вместо этого у меня естьследующий код (сводка):
class ActorData extends Model
{
protected $table = 'actordata';
[..]
public function nationality()
{
return $this->hasOne("App\Models\ActorData\Nationality");
}
}
class Actor extends Model
{
protected $table = 'actors';
[..]
public function actorData()
{
return $this->hasOne('App\Models\ActorData');
}
}
Моя цель, когда я звоню «-> национальность», я хочу, чтобы она принимала «национальность», но я получаю «ноль» или ошибки, связанные с «ключами»не найден.
$actorData = \App\Models\Actor::find(1)->actorData()->first();
var_dump($actorData->nationality);
Я понимаю, что "hasOne" ищет ключ в "национальности", но я хотел сделать простую "ссылку".В качестве другого решения, я мог бы просто взять «Nationality_Id» и найти его в таблице «Nationality», но я думаю, что это неправильный подход.
Надеюсь, я был исчерпывающим, спасибо за ваше сотрудничество.
(чтобы «исправить», мне пришлось добавить «$ actorData-> nationality () -> associate ($ национальность))