[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)

Controller Api incorreto - Resource - MIgrations

[Finalizado Pelo Aluno]

Jean Silva
Criador Jean Silva 14/07/2022

Professor, bom dia!

Dados do Controller, Migraions e request da API baixados do github estão incorretos, gerando assim problemas na inserção dos dados, visto que não estão validando também, retornando apenas true.

database\migrations\2021_12_08_152043_create_todos_table.php

  public function up()
    {
        Schema::create('todos', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('description')->nullable();
            $table->boolean('completed')->default(false);
            $table->timestamps();
        });
    }

app\Http\Resources\TodoResource.php

return [
            'identify' => $this->id,
            'title' => strtolower($this->name),
            'body' => $this->description,
            'completed' => $this->completed ? 'S' : 'N',
            'date' => Carbon::create($this->created_at)->format('Y-m-d'),
        ];

app\Http\Requests\StoreUpdateTodo.php

   public function rules()
    {
        return [
            'name' => ['required', 'min:3', 'max:255'],
            'description' => ['nullable', 'min:3', 'max:9999'],
            'completed' => ['required', 'boolean']
        ];
Criador Jean Silva 14/07/2022

No model também:

app\Models\Todo.php

class Todo extends Model
{
    use HasFactory;

    protected $fillable = ['name', 'description', 'completed'];

    protected $casts = [
        'completed' => 'boolean',
    ];
}
Jean Silva
Criador Jean Silva 14/07/2022

Entendi a mudança dos nomes devido a request.

 

Portanto no meu caso, eu não consigo salvar via JSON via Postman, ele retorna Sucess, mesmo os dados estando corretos.

Jean Silva
Criador Jean Silva 14/07/2022

Passando via boy com JSON, também não vai.

{
    "name""Todo",
    "description""Novo Todo",
    "completed""S"
}
Jean Silva
Criador Jean Silva 14/07/2022

Descobri, em suas aulas você passa como STRING, sendo e o campo está setado para receber um boolean, 0 ou 1, a quem tiver o mesmo problema, mude de string para number, desobri tentando inserir direto no database.

{
    "name""Todo",
    "description""Novo Todo",
    "completed"1
}
Jean Silva
Criador Jean Silva 14/07/2022

Portanto deveria constar algum erro, informando que o dado passado é invalido na request, o que não ocorreu, retornava sempre sucess, sendo que não era.

Jean Silva
Manager Carlos Ferreira 14/07/2022

Olá, Jean!
Tudo bem?

Compartilha comigo o seu código, que te ajudo a entender o que pode estar errado.

No aguardo amigo.

Carlos Ferreira
Criador Jean Silva 14/07/2022

Estou passando através do seu proprio codigo do github do laravel api todo list, você mesmo pode baixar e realizar o teste via postman.

Jean Silva
Manager Carlos Ferreira 14/07/2022

Olá, Jean!

O código está ok, conforme pode ver neste vídeo aqui, funciona perfeitamente: https://www.youtube.com/watch?v=2ZzMY7wMw1k

---

Qual foi exatamente o erro que aconteceu com vc?
Envia um print por favor: https://uploaddeimagens.com.br/

---

Está usando Docker?

Carlos Ferreira
Darcio Fernandes 14/07/2022

Ajudou demais Jean, gratidão ...

É exatamente isso mesmo ->  "completed"1

Darcio Fernandes
Criador Jean Silva 14/07/2022

Olá Professor, boa noite!

Obrigado pela ajuda.

Jean Silva
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!