Если вы не имеете QuestionnaireResult
модели, то нет прямого Eloquent отношения к этому, как и все взаимоотношения по умолчанию зависит от наличия красноречивых моделей. Тем не менее, существует довольно чистый способ достичь этого, рассматривая его как отношение Product
и Questionnaire
и обрабатывая questionnaire_results
в качестве сводной таблицы (даже если вы действительно знаете , что продукт будет принадлежать только одному вопроснику).
Модель продукта:
public function questionnaire() {
return $this->belongsToMany('App\Questionnaire', 'questionnaire_results');
}
Анкета модели:
public function products() {
return $this->belongsToMany('App\Product', 'questionnaire_results');
}
В этой связи будет возвращать коллекцию, вам необходимо либо открыть первый массив с [0]
или использовать метод first()
.
$product->questionnaire()->first();
Однако, если вы сделать есть QuestionnaireResult
модель, то у вас есть очень простой One to One отношения без необходимости проходить через другую модель. У вас есть некоторые результаты опроса, которые относятся к продукту, в то время как у продукта может быть только один набор ответов на вопросник (в соответствии с информацией о вашем сообщении).
Модель
продукта:
public function questionnaireResult() {
return $this->hasOne('App\QuestionnaireResult');
}
Анкета Результат Модель:
public function product() {
return $this->belongsTo('App\Product');
}