Eu tenho um menu que é carregado a partir do layout.blade.php
baseado na rota artistas da seguinte forma:
@if (request()->is('artistas/*'))
@include('components/menu-artistas')
@else
@include('components/menu')
@endif
Dentro dessa página eu estou usando rotas com o parâmetro de id do artista para que eu possa editar dados sobre ele especificamente, e o menu lateral deve ter o id do artista que eu estou editando, porém quando eu envio o parâmetro, por exemplo, {{route('perfil', $artistaID->artistaID)}}
, ele diz que a variável não existe.
menu-artistas.blade.php
<- ... ->
<li class="sidebar-title"><i class="fa-solid fa-pen-to-square"></i> Editar</li>
<li class="sidebar-item {{ (request()->is('artistas/2Pac/perfil')) ? 'active' : '' }}">
<a href="{{route('perfil', $artistaID->artistaID)}}" class="sidebar-link">
<i class="fa-solid fa-user"></i><span>Perfil</span>
</a>
</li>
<- ... ->
ArtistasController.php
<?php
namespace App\Http\Controllers;
use App\Models\Gravadoras;
use Illuminate\Http\Request;
use App\Http\Requests\ArtistasFotoPerfilRequest;
use App\Models\Artista;
class ArtistasController extends Controller
{
public function novoArtista()
{
$gravadoras = Gravadoras::all();
return view('artistas.novo-artista')->with('gravadoras', $gravadoras);
}
public function gerenciarArtista()
{
$artistas = Artista::all();
return view('artistas.gerenciar-artista')->with('artistas', $artistas);
}
public function perfil(Artista $artistaID)
{
return view('artistas.index')->with('artistaID', $artistaID);
}
public function historia(Artista $artistaID)
{
return view('artistas.historia')->with('artistaID', $artistaID);
}
public function fotoPerfil()
{
return view('artistas.fotoPerfil');
}
public function uploadFoto(ArtistasFotoPerfilRequest $request)
{
$input = $request->file('artistCover');
$fotoPerfil = $input->getClientOriginalName();
$input->storeAs('/uploads/artistas', $fotoPerfil, 'images');
return view('artistas.fotoPerfil')->with('sucesso', 'A foto de perfil foi enviada com sucesso.');
}
public function detalhes(Artista $artistaID)
{
$gravadoras = Gravadoras::all();
return view('artistas.detalhes', compact('gravadoras', 'artistaID'));
}
}
Como eu poderia enviar o parâmetro corretamente para o menu? Eis o git do projeto.