Я использую Laravel-Nova-Nested-Form , но при создании новых записей я получаю ту же ошибку, на которую ссылаются ниже.Любое предложение, чтобы исправить это, будет очень полезно.
{
"messages" : "The given data was invalid.",
"errors" : {
"answers[0][question]" : ["The question field is required."]
}
}
Это, вероятно, вызвано этим в ресурсе ответов:
BelongsTo::make('Question')
->searchable()
->rules('required'),
Удаление этой части позволит мне обновить ответы, нокогда я пытаюсь их создать, я получаю другое сообщение об ошибке (логику):
{
"message": "SQLSTATE[HY000]: General error: 1364 Field 'question_id' doesn't have a default value (SQL: insert into `answers` (`title`, `value`, `status`, `follow_up`, `updated_at`, `created_at`) values (dd, aa, 0, 1, 2019-04-25 07:16:35, 2019-04-25 07:16:35))",
"exception": "Illuminate\\Database\\QueryException",
"file": "/var/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php",
"line": 664,
...
}
Поэтому вместо удаления этой части из ресурса ответа я добавил кое-что:
BelongsTo::make('Question')
->searchable()
->rules('required')
->hideWhenUpdating(),
Это снова позволяет мне обновлять ответы, но как только я хочу добавить новый, я снова получаю первое сообщение об ошибке (логика):
{
"messages" : "The given data was invalid.",
"errors" : {
"answers[0][question]" : ["The question field is required."]
}
}
И я пробовал еще немного, но я всегдазастрял в неспособности создать новый ответ.
Это мой ресурс Нова
<?php
namespace App\Nova;
use Laravel\Nova\Fields\ID;
use Illuminate\Http\Request;
use Laravel\Nova\Fields\BelongsTo;
use Laravel\Nova\Fields\Text;
use Laravel\Nova\Fields\Select;
use Jackabox\DuplicateField\DuplicateField;
class Answer extends Resource
{
/**
* The model the resource corresponds to.
*
* @var string
*/
public static $model = 'App\Answer';
/**
* The single value that should be used to represent the resource when being displayed.
*
* @var string
*/
public static $title = 'title';
/**
* The columns that should be searched.
*
* @var array
*/
public static $search = [
'id', 'title', 'value',
];
/**
* Get the fields displayed by the resource.
*
* @param \Illuminate\Http\Request $request
*
* @return array
*/
public function fields(Request $request)
{
return [
ID::make()->sortable(),
BelongsTo::make('Question')
->searchable()
->rules('required'),
Text::make('title')
->sortable()
->rules('required', 'max:255'),
Text::make('value')
->sortable()
->rules('required', 'max:255'),
Select::make('status')->options([
'0' => 'System',
'1' => 'User',
])
->displayUsingLabels()
->rules('required'),
BelongsTo::make('Follow up', 'follow_up_question', 'App\Nova\Question')
->searchable()
->nullable(),
];
}
/**
* Get the cards available for the request.
*
* @param \Illuminate\Http\Request $request
*
* @return array
*/
public function cards(Request $request)
{
return [];
}
/**
* Get the filters available for the resource.
*
* @param \Illuminate\Http\Request $request
*
* @return array
*/
public function filters(Request $request)
{
return [];
}
/**
* Get the lenses available for the resource.
*
* @param \Illuminate\Http\Request $request
*
* @return array
*/
public function lenses(Request $request)
{
return [];
}
/**
* Get the actions available for the resource.
*
* @param \Illuminate\Http\Request $request
*
* @return array
*/
public function actions(Request $request)
{
return [];
}
}
Любая помощь будет высоко ценится