Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Dúvida sobre Request no Controller das Temporadas

Porque que no método TemporadasController::index nós não usamos o Request para pegar o id da Temporada que está vindo na url da requisição como fizemos anteriormente nos métodos do Controller das Séries? No método index do Controller das Temporadas definimos que esperamos receber um inteiro, de fato é um inteiro. No controller das Séries era explicito que tinhamos que receber o Request e a partir dele buscar os dados da requisição e agora ficou como abaixo. Como o Laravel trata isso e como sabe obeter o dado correto?

namespace App\Http\Controllers;

use App\Serie;
use Illuminate\Http\Request;

class TemporadasController extends Controller
{
    public function index(int $serieId)
    {
        $serie = Serie::find($serieId);
        $temporadas = $serie->temporadas;

        return view('temporadas.index', compact('serie' ,'temporadas'));

    }
}
4 respostas

Rafael, nós estamos recebendo o parâmetro $serieId da URL, e não do corpo da requisição. Baseado no nome do parâmetro que definimos na rota, o Laravel sabe "fazer a ligação" com esse parâmetro no método, entende?

Boa noite Vinicius.

Então, na parte 1 do curso de Laravel eu tinha entendido que a partir do Request eu poderia pegar dados da URL (query strings) e também dados do post (Formulários) e isso era bem explicito com o Request com parâmetro do método.

Entendi o que você quiz dizer sobre ele saber tratar o parâmetro vindo da rota. OK.

Então mais uma dúvida a partir deste entendimento:

Podemos pegar um parâmetro a patir da rota que o Laravel sabe tratar. Mas isso só se limita a parametrôs da URL/rota ou também funcionaria para um post com um formulario sem que o parâmetro fosse o Request? Não sei se consegui ser claro, rsrsr. Tipo a rota é para com o post, estão vindo dados de formulário, mas no método do controler que trata a requisição eu faço semelhante ao que se faz para pegar da URL:

class TemporadasController extends Controller
{
    public function index(int $numeroTempora, string $sinopse)
    {
        $numeroTeporada = $numeroTemporada;
    $sinopse = $sinopse;

    // Código aqui
    }
}

Talvez não faça muito sentido o código acima, mas isso funcionaria também?

solução!

Olá, Rafael.

Valores que vêm no corpo de uma requisição usando o verbo POST não podem ser buscados diretamente através do parâmetro do método assim.

Mas essas dúvidas mais pontuais assim são bastante comuns, então o ideal é tentar mesmo e ver o que acontece. rsrsrs

Ok Vinicius.

Muito obrigado pelos esclarecimetos.