Есть форма для создания тестов с динамическими полями HTML: <form action="{{ route('testy.store') }}" method="POST" enctype="multipart/form-data"> @csrf <div class="card-header shapka_testa"> <div class="form-group"> <label>Название теста</label> <input type="text" name="title" class="form-control" placeholder="Введите название теста" required> <label>Описание теста</label> <textarea type="text" name="opisanye" class="form-control" placeholder="Введите описание теста" required></textarea> <label>Время (максимум 180 мин.)</label> <input type="number" pattern="\d+" name="time" min="1" max="180" value="30" name="title" class="form-control" required> </div> </div> <div class="container-fluid card-body"> <div class="row batman-picture"> // динамическое поле <a class="col-lg-6" id="fieldset"> <div class="card card-primary"> <div class="card-header"> <input type="file" class="upload" id="rebate_image" name="rebate_image[]" readonly="" required title="Нажмите чтобы загрузить картинку теста"> </div> <div class="card-footer"> <div class="col"> <input type="radio" name="otvety[]" id="r1"> <input type="text" name="varianty[]" value="A" class="form-control" readonly=""> </div> <div class="col"> <input type="radio" name="otvety[]" id="r2"> <input type="text" name="varianty[]" value="Б" class="form-control" readonly=""> </div> <div class="col"> <input type="radio" name="otvety[]" id="r3"> <input type="text" name="varianty[]" value="В" class="form-control" readonly=""> </div> <div class="col"> <input type="radio" name="otvety[]" id="r4"> <input type="text" name="varianty[]" value="Г" class="form-control" readonly=""> </div> </div> </div> </a> // динамическое поле </div> <button type="button" name="add" id="btnAddressAdd" class="btn btn-success btn-lg btn-block nomer_testa"><i class="fas fa-plus"></i> Добавить вопрос</button> </div> <div class="card-footer shapka_testa d-grid gap-2 d-md-flex justify-content-md-end"> <button type="submit" class="btn btn-primary izmenit_name"><i class="fas fa-save"></i> Сохранить тест</button> </div> </form> Контроллер: class TestyController extends Controller PHP: public function store(Request $request) { return redirect('admin_panel/testy')->withSuccess('Тест была успешно добавлена!'); } И три таблицы в базе данных: 1) testies с полями title, opisanye и time 2) test_voprosies c полями test_title_id и rebate_image 3) test_otveties с полями rebate_img_id, varianty и otvety Каждый вопрос имеет 4 варианта. Как сохранить в базу данных, не могу написать TestyController и модел Testy. Использую ларавел 8
voprosies, otveties. OHMYGOD! смешивать русский и английский в именах, это смех сквозь слёзы. особенно когда ты из Казахстана. ведь кто-то это будет читать!!! пожалей их. что-то не видно даже попыток что-то сохранить. друг, покажи свои попытки. глядя на поля в форме, я думаю что для сохранения ТАКИХ тестов достаточно одной таблицы, где каждая запись хранит текст вопроса и правильный ответ.
Тема работы со связанными таблицами через Eloquent в документации разжёвана предельно. --- Добавлено --- А если бы на казахском были, было бы лучше? @Ilgiz По идентификаторам правило одно: единственный допустимый язык - английский, независимо от страны проживания.
это модель Код (Text): <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Testy extends Model { use HasFactory; public function test_voprosyTest_otvety() { return $this->hasOneThrough(Otvety::class, Voprosy::class); } public function podcategory() { return $this->belongsTo('App\Models\Podcategory', 'podcat_id'); } public function uroky() { return $this->belongsTo('App\Models\Uroky', 'urok_id'); } public function user() { return $this->belongsTo('App\Models\User', 'user_id'); } } контроллер Код (Text): <?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Models\Testy; use Illuminate\Http\Request; use App\Models\Podcategory; // добавлена для связи с подкатегориями use App\Models\Uroky; // добавлена для связи с уроками use App\Models\User; // добавлена для связи с подкатегориями class TestyController extends Controller { public function store(Request $request) { Testy::create([ $testy->user_id = \Auth::user()->id, $testy->urok_id = $request->urok_id, $testy->podcat_id = $request->podcat_id, $testy->title = $request->test_title, $testy->opisanye = $request->text, $testy->rebate_imag = $request->img, $testy->time = $request->time, ]); Voprosy::create([ $test_voprosy->test_title_id = $request->test_title_id, $input = $request->all(), $test_voprosy = ['img_test' = $input['rebate_new_image'][$i],], ]); Otvety::create([ $test_otvety->img_test_id = $request->img_test_id, $input = $request->all(), $test_otvety = ['varianty' = $input['varianty'][$i],], $input = $request->all(), $test_otvety = ['otvety' = $input['variant'][$i],], ]); return redirect('admin_panel/testy')->withSuccess('Тест была успешно добавлена!'); } } не удается сохранить в базу данных. я навичок в этой сфере. только-только начинаю. в некоторых местах написал на русском, а в некоторых на английском пока что только так мне понятнее. Извиняюсь за неудобства --- Добавлено --- в будущем нужно будет сохранить и неправильные ответы
Боооль. Где вы в документации такое вообще нашли? --- Добавлено --- А обязательно только-только начинать прямо с Laravel?
нет ) но это не наезд на казахский язык, это совет использовать для всех переменных и сущностей в БД только английский. --- Добавлено --- ну ты то знаешь, просто повторим ещё раз для ТСа
Вообще для всех. А то к нам, к примеру, молодёжь приходит, и не знает, как keyboard или exception правильно написать.