diff --git a/app/Http/Controllers/Admin/QuestionController.php b/app/Http/Controllers/Admin/QuestionController.php
index 14c1de7..ba2a0e7 100755
--- a/app/Http/Controllers/Admin/QuestionController.php
+++ b/app/Http/Controllers/Admin/QuestionController.php
@@ -53,6 +53,20 @@ class QuestionController extends Controller
'ordering_items' => 'nullable|array',
]);
+ // Проверка что есть хотя бы текст или картинка в ответах
+ if ($validated['type'] === 'multiple_choice' && !empty($validated['answers'])) {
+ $hasValidAnswer = false;
+ foreach ($validated['answers'] as $answer) {
+ if (!empty($answer['text']) || !empty($answer['image'])) {
+ $hasValidAnswer = true;
+ break;
+ }
+ }
+ if (!$hasValidAnswer) {
+ return back()->withErrors(['answers' => 'Добавьте хотя бы один ответ (текст или картинку)'])->withInput();
+ }
+ }
+
DB::transaction(function () use ($test, $validated) {
$question = $test->questions()->create([
'type' => $validated['type'],
@@ -66,7 +80,7 @@ class QuestionController extends Controller
// Ответы для multiple_choice
if ($validated['type'] === 'multiple_choice' && !empty($validated['answers'])) {
foreach ($validated['answers'] as $answer) {
- if (!empty($answer['text'])) {
+ if (!empty($answer['text']) || !empty($answer['image'])) {
$imagePath = null;
if (!empty($answer['image'])) {
$imagePath = $answer['image']->store('questions/answers', 'public');
@@ -145,6 +159,20 @@ class QuestionController extends Controller
'ordering_items' => 'nullable|array',
]);
+ // Проверка что есть хотя бы текст или картинка в ответах
+ if ($validated['type'] === 'multiple_choice' && !empty($validated['answers'])) {
+ $hasValidAnswer = false;
+ foreach ($validated['answers'] as $answer) {
+ if (!empty($answer['text']) || !empty($answer['image'])) {
+ $hasValidAnswer = true;
+ break;
+ }
+ }
+ if (!$hasValidAnswer) {
+ return back()->withErrors(['answers' => 'Добавьте хотя бы один ответ (текст или картинку)'])->withInput();
+ }
+ }
+
DB::transaction(function () use ($question, $validated) {
$question->update([
'type' => $validated['type'],
@@ -159,7 +187,7 @@ class QuestionController extends Controller
if ($validated['type'] === 'multiple_choice' && !empty($validated['answers'])) {
$question->answers()->delete();
foreach ($validated['answers'] as $answer) {
- if (!empty($answer['text'])) {
+ if (!empty($answer['text']) || !empty($answer['image'])) {
$imagePath = null;
if (!empty($answer['image'])) {
$imagePath = $answer['image']->store('questions/answers', 'public');
diff --git a/resources/views/admin/questions/create.blade.php b/resources/views/admin/questions/create.blade.php
index d435c43..68481a6 100644
--- a/resources/views/admin/questions/create.blade.php
+++ b/resources/views/admin/questions/create.blade.php
@@ -94,34 +94,36 @@