Olá, gostaria de saber se alguém pode me ajudar! Sou iniciante e travei em uma parte de desenvolvimento.
Versão: Laravel 9
É o seguinte:
- Tenho uma tabela Usuários, Subconjuntos e Descritivo.
- Já consegui fazer o usuário cadastrar um Subconjuntos. Porém agora quero que ao cadastrar um subconjunto, ele automaticamente é encaminhado página de cadastro do Descritivo, que tem dois campos.
- Mas não consigo fazer a Chave Estrangeira da tabela Descritivo ('idSub') pegar o 'id' da tabela de Subconjuntos, como fiz entre usuário e subconjunto anteriormente.
Vou mandar meu código:
** Minha função store do SubconjuntosController **
public function store(Request $request)
{
$user = Auth::user();
if ($user && Auth::check()) {
$sub = new Subconjuntos();
$sub->title = $request->title;
$sub->content = $request->content;
$sub->status = $request->status == 'on' ? 0 : 1;
$sub->user_id = Auth::user()->id; // chave estrangeira do subconjuntos pega o id do usuário.
}
$sub->save();
return redirect()->route('descritivo.create'); //Aqui encaminha para um formulário de criar um Descritivo.
}
** Minha função store do DescritivoController **
public function store(Request $request, Descritivo $descritivo)
{
$user = Auth::user();
if ($user && Auth::check()) {
$descritivo = new Descritivo();
$descritivo->teorista = $request->teorista,
$descritivo->referencia = $request->referencia,
gostaria de saber como faço aqui para pegar a chave estrangeira do Descritivo e ele ser igual ao id do subconjunto. Que nem eu fiz com Usuário e Subconjunto.
}
$descritivo->save();
return redirect()->route('sub.index');
}
** Model de Descritivo **
class Descritivo extends Model
{
use HasFactory;
protected $fillable = [
'idSub',
'teorista',
'referencia',
];
public function subconjuntos()
{
return $this->belongsTo(Subconjuntos::class);
}
}
** Model do Subconjuntos **
class Subconjuntos extends Model
{
use HasFactory;
protected $fillable = [
'user_id',
'title',
'content',
'status',
];
protected $casts = [
'status' => 'boolean'
];
public function user()
{
return $this->belongsTo(User::class);
}
public function descritivo()
{
return $this->hasOne(Descritivo::class, 'idSub');
}
}
***Meu sistema funciona da seguinte maneira:
- Usuário cadastra Subconjunto, ao clicar em Salvar, ele é encaminhada ao formulário de Descritivo.
Espero que alguém possa me ajudar. Porque sei que parece um bobagem de erro, porém eu travei tem um dia nessa parte e não consigo resolver. Serei muito grata! :)