Обновить значение для отношения Laravel - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь обновить значение для 2 моделей с отношениями, но мой подход не кажется слишком "Laravel way", есть ли лучший способ сделать это?

$question = new Question();
$question->where('id', $id)->update([
    'free_text' => $request->free_text,
    'title' => $request->title,
    //here I have a topics_id 
]);

$question_topics = new QuestionTopics();
$question_topics->where('id', $request->topics_id)->update([
    'best_match_topic' => $request->best_match_topic,
    'topic_1' => $request->topic_1,
    'topic_2' => $request->topic_2,
    'topic_3' => $request->topic_3,
]); 

Из моделей:

public function questions()
{
    return $this->belongsTo(Question::class);
}

public function question_topics()
{
    return $this->hasOne(QuestionTopics::class, 'id');
}

1 Ответ

1 голос
/ 25 марта 2020

Сначала нужно добавить параметр в отношении как themes_id.

public function question_topics()
{
    return $this->hasOne(QuestionTopics::class,'topics_id', 'id');
}


$question = Question::find($id)
$question->update([
                'free_text' => $request->free_text,
                'title' => $request->title,

            ]);

$question->question_topics()->update([
    'best_match_topic' => $request->best_match_topic,
    'topic_1' => $request->topic_1,
    'topic_2' => $request->topic_2,
    'topic_3' => $request->topic_3,
]); 
...