2014-11-11 5 views
1

Я пробовал это как 10 раз, но все еще не в состоянии это сделать. Итак, вот что я хочу сделать.Laravel Вставить данные с двумя имеет много отношений, используя Eloquent

Я стараюсь, чтобы вставить тест, который имеет несколько вопросов, и каждый вопрос имеет несколько вариантов.

Quiz - имеет много ->Вопросы - имеет много ->Опции

Для примера:

This is a Quiz? 
    Question 1? 
     Option 1 
     Option 2 
    Question 2? 
     Option 1 
     Option 2 

У меня 3 таблицы для хранения Quiz Questions and Answers. Все они связаны правильно, и я могу получать и отображать опросы без каких-либо проблем.

Но я хочу вставить викторину. Я знаю, как вставлять данные с одним, имеет много отношений, но не имеет абсолютно никакого понятия, как вставлять данные с 2 или более, имеет много отношений.

$quiz = new Quiz; 
... 
$quiz->save(); 
$questions = [new Question, new Question, ...]; 
$quiz->questions()->saveMany($questions); 

Я могу вставить викторины и нескольких вопросов, связанных с этой викториной, но теперь я также хочу, чтобы вставить несколько вариантов для каждого вопроса как $options1, $options2 и т.д.

Я новичок в Laravel ,

ответ

1

Вам нужно будет что-то вроде этого

class Quiz extends Eloquent { 

    protected $table = "you table name here"; 

    public function questions() { 
     return $this->hasMany("Question", "question_id", "id"); 
     //where Question is your model for questions table 
    } 

} 

class Question extends Eloquent { 

    protected $table = "you table name here"; 

} 

$quiz = new Quiz; 

//set quiz data here 
// $quiz->name = "name"; 

$quiz->save(); 


for ($i = 0; $i < count($questions); $i++) { 
    $arr[$i] = new Question; 
    $arr[$i]->quize_id = $quiz->id;; 
    // Set other data here 
} 

$quiz->questions()->saveMany($arr); 
+0

я смог вставить несколько вопросов, но я также хочу, чтобы вставить несколько вариантов ответа на каждый вопрос тоже. Таким образом, в основном у Викторины много вопросов, и у каждого вопроса столько вариантов. Я не уверен в том, что часть отдыха осталась в порядке. – Chaitanya

Смежные вопросы