У меня есть две модели с именами Question
и Factor
.Один Factor
принадлежит многим Question
, а каждый Question
имеет один Factor
.Я определяю это отношение многие-к-одному в моих моделях. Я хочу сохранить фактор в QuestionController
. Я нахожу объект вопроса и создаю фактор с помощью этого вопроса. Когда я проверяю эту функцию в Postman
, коэффициент успешносохранено, но factor_id
не вставляется автоматически в таблицу вопросов. Я не хочу создавать объект вопроса с помощью множителя (обратная сторона этого способа).Потому что фактор-объект создается, когда платеж выполнен и до того, как был создан объект вопроса. Как это сделать?это таблица вопросов:
Schema::create('questions', function (Blueprint $table) {
$table->increments('id');
$table->string('title')->nullable();
$table->timestamps();
$table->integer('factor_id')->unsigned()->nullable();
$table->foreign('factor_id')->references('factors')->on('id')->onDelete('cascade');
});
Это таблица факторов:
Schema::create('factors', function (Blueprint $table) {
$table->increments('id');
$table->string('number_factor')->nullable();
$table->decimal('total_price',15,2)->nullable();
$table->timestamps();
});
Это модель вопросов:
class Question extends Model
{
protected $guarded=[];
public function factors()
{
return $this->belongsTo(Factor::class,'factor_id');
}
}
Это модель факторов:
class Factor extends Model
{
protected $guarded=[];
public function questions()
{
return $this->hasMany(Question::class,'factor_id');
}
}
Это QuestionController
:
public function storeFactor(Request $request,$questionId)
{
$question=Question::find($questionId);
if(is_null($question)){
return response()->json([
'success'=>false,
'message'=>'This question is not exist!'
],404);
}
$question->factors()->create($request->all());
$question->save();
return response()->json([
'success'=>true,
'message'=>'Factor successfully Stored.'
],200);
}
А это мой маршрут:
Route::post('question/storeFactor/{id}','API\QuestionController@storeFactor');