Я пытаюсь создать новую запись, когда я отправляю данные формы из моего внешнего интерфейса, и я изо всех сил пытаюсь обернуть голову, как я могу это сделать.Я искал примеры и мне пока не повезло найти что-то.Таким образом, я отправляю данные для нового задания, и мои задания имеют связь между сводной таблицей и задачами.Вот структура отношений.
- Пользователь hasMany Задачи
- Задача принадлежит То Пользователь
- Клиент имеет много Помолвки
- Помолвка Принадлежит Клиент
- Задание свойство ToMany Задания (и, конечно, наоборот)
Если я отправляю данные в , сохраняют новое задание, и я также хочу сохранить новоеЗадача в в то же время Я изо всех сил пытаюсь понять, какой метод я должен использовать для достижения этой цели.
Я понимаю, что мне нужно, чтобы Задание и Задание существовали до разворотатаблица заполняется.
EngagementsController.php (для сохранения нового задания)
public function store(Request $request)
{
$data = $request->validate([
'client_id' => 'required|integer',
'return_type' => 'required|string',
'year' => 'required|string',
'status' => 'required|string',
'assigned_to' => 'required|string',
'done' => 'required|boolean'
]);
$engagement = Engagement::create([
'client_id' => $request->client_id,
'return_type' => $request->return_type,
'year' => $request->year,
'assigned_to' => $request->assigned_to,
'status' => $request->status,
'done' => $request->done,
]);
return response($engagement, 201);
}
После запуска $engagement = Engagement
мне интересно, могу ли я использоватьданные для поля assigned_to
для Задание и Задание , как это?
$engagement = Engagement::create([
'client_id' => $request->client_id,
'return_type' => $request->return_type,
'year' => $request->year,
'assigned_to' => $request->assigned_to,
'status' => $request->status,
'done' => $request->done,
]);
$data = $request->assigned_to;
$task->tasks()->create($data);
Модель взаимодействия
class Engagement extends Model
{
protected $fillable =
[
'client_id',
'return_type',
'year',
'assigned_to',
'status',
];
public function client()
{
return $this->belongsTo('App\Client');
}
public function tasks()
{
return $this->belongsToMany('App\Task', 'engagement_task', 'engagement_id', 'task_id');
}
public function questions()
{
return $this->hasMany('App\Question');
}
}
Модель задачи
class Task extends Model
{
protected $fillable = ['user_id'];
public function user()
{
return $this->belongsTo('App\User');
}
public function engagements()
{
return $this->belongsToMany('App\Engagement', 'engagement_task', 'task_id', 'engagement_id');
}
}