Excelente curso, Matheus! Estou "maratonando" o curso e, mesmo não sendo da área de desenvolvimento Web, está sendo muito enriquecedor! Um ponto dessa aula é que quando acessamos outros "Eventos" que criamos antes da implementação da gravação do JSON, o Laravel apresenta um erro ao visualizarmos esses eventos, porque $event->items é null para esses eventos iniciais (não é um array vazio no banco.... apenas null, gerado pela migration que fizemos). Nesse caso, adicionei a uma condicional do blade @if(isset($event->items)) antes da tag O evento conta com: da nossa view, fechando o @endif após a tag html , para que, os demais eventos, que não contavam com essa funcionalidade ainda, possam ser exibidos sem erros. Se forem atualizados depois, serão exibidos de qualquer maneira. Muito obrigado!
@@MatheusBattisti conteúdo super interessante. agora estou com um erro qndo tento visualizar os primeiros eventos criados dá erro: Invalid argument supplied for foreach() , só funciona para eventos novos que já tenham sido cadastrados com os itens, por outra penso dá alguns erros ao carregar certas imagens.
@@MatheusBattisti Quando eu crio uma migration não aparece aquela linha do schema(tennho que digitar) e o "hasfactory" não funciona, as rotas não funcionam desse jeito: Route::post('/events', [EventController::class, 'store']) ----- só assim: Route::post('/events', 'EventController@store'); tem haver com a versão do laravel ?
@@ariclenesmalanga4561 sim você esta usando uma versão mais antiga mesmo,eu usava assim como você descreveu,antigamente ,mas essa nova mudou a sintaxe.
SOLUÇÃO PARA O ERRO DO 'ARRAY NULL': 1º No Controller mude a linha onde define as categorias para: $event->items = json_encode($request->items, JSON_UNESCAPED_UNICODE); 2º Ainda no Controller, na classe onde você irá pegar os dados no Banco de Dados e enviar para a view você irá acrescentar: $event->items = json_decode($event->items); É uma solução manual ao problema. Ocorreu comigo no Laravel 11.X PHP 8.2 .
O curso está incrível, acabei de adquirir também o curso de SQL na udemy, Matheus se tiver como um dia gravar um vídeo navegando pela documentação, seria muito útil para o avanço no conhecimento do Laravel.
Que curso incrivel! Outra coisa: Amei o fato de voce ensinar a gente a configurar o VS Code para usar o Laravel. Maioria dos cursos incentiva comprarmos PHP Storm. Sei que PHP Storm é uma otima IDE, mas para quem ta começando fica puxado pagar uma IDE...
Caaaara que incrível, uma pergunta: Qual é a diferença entre "json" e "jsonb" ? Tem alguns projetos que eu trabalho que salvam os dados no banco como "jsonb"
Pessoal que comentou que os outros itens que não tem a propriedade JSON estavam dando erro, é só fazer a validação antes de rodar o foreach assim: @if($event->items != "")
Dúvida...: Se eu ja tenho o banco de dados mysql com as tabelas. na criação do site preciso ainda ter migrations ? se "não", então como acessar os registros ?
Boa noite Matheus. Obrigado pelo ótimo conteúdo! Venho acompanhando o curso e cheguei até aqui. Até agora tudo deu certo conforme você ensinou. Mas percebi que, quando vou realizar um cadastro, se eu deixar algum campo em branco, há um erro no cadastro. O cadastro só funciona se eu preencher todos os campos. Não sei se, mais pra frente, vc vai mostra como resolver isso, mas se é um erro, poderia mostrar como resolver esse problema? Obrigado!
opa, da uma pesquisada nisso aqui, pode resolver seu problema, no caso eu usei com o campo imagem. $table->string('image')->nullable(); isso fica no arquivo de migration, esse nullable significa que o valor pode ser nulo
Ola bom dia!! tenho dois modelos diferentes ( cliente e telefone ), quero adicionar um campo no form d cliente que serviria pra adicionar telefones, mas queria que esse registro de telefone fosse uma foreignkey! desculpe se n estou sabendo explicar!! consigo salvar um registro so por vez!
Excelentes aulas. Com algumas mudanças estou seguindo esse curso usando o ajax para não recarregar a página. É uma pena que a tag {{}} do blade só funciona no script se o codigo estiver embutido na view. Importando não.
Mensagem de erro: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in y our SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'json not null' at line 1 (SQL: alter table `e vents` add `items` json not null)
Ótimo curso e estou aprendendo muito! Só tenho agradecer pelo conteúdo. Estou passando por um problema que ocorre quando salvo o json no Banco de dados, só é salvo o último item selecionado da checkbox. Daí quando faço foreach dar erro. Alguém pode me ajudar?
Oi! Vc já deve ter resolvido, mas deixar aqui para quem mais estiver com dúvida. Isto deve estar ocorrendo pois quando vc definiu o name do input vc esqueceu de colocar os colchetes para sinalizar que é uma lista. Tem que deixar assim: .Desta forma ele vai adicionar os valores à array. Se deixar apenas "items", sem colchetes, ele apenas vai sobrescrever o último valor que vc marcar no checkbox, perdendo os valores anteriores. Abraço!
Meu arquivo json ao salvar no banco fica "on" para as checkbox selecionadas(no caso era pra aparecer as informações dos itens), como será que posso resolver ?
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'description' cannot be null estou tendo este erro na hora de compilar e carregar a pagina de "Items" quando vou criar o evento, aparece a pagina de erro do laravel com esta mensagem ai, e os dados nao sobem para o Banco de Dados. (criar evento somente com imagem esta dando certo, mas quando crio com os itens é que da erro) estou a um dois já tentando encontrar o erro kkkk alguma ajuda?
@@matheusbaptista27 Puedes cambiar definicion en la migracion usando $table->text('description')->nullable(false); Esto requiere hacer un php artisan migrate:fresh o reset
Excelente curso, Matheus! Estou "maratonando" o curso e, mesmo não sendo da área de desenvolvimento Web, está sendo muito enriquecedor! Um ponto dessa aula é que quando acessamos outros "Eventos" que criamos antes da implementação da gravação do JSON, o Laravel apresenta um erro ao visualizarmos esses eventos, porque $event->items é null para esses eventos iniciais (não é um array vazio no banco.... apenas null, gerado pela migration que fizemos). Nesse caso, adicionei a uma condicional do blade @if(isset($event->items)) antes da tag O evento conta com: da nossa view, fechando o @endif após a tag html , para que, os demais eventos, que não contavam com essa funcionalidade ainda, possam ser exibidos sem erros. Se forem atualizados depois, serão exibidos de qualquer maneira. Muito obrigado!
que foda ficou esse curso. Um mar de aprendizado!!
valeuu!
Muito TOP esse @Matheus Batisti, parabéns cara por disponibilizar seus conhecimentos assim com a gente!!!
Tenho aprendido muito com este curso, muito top, Deus abençoe vc(Apartir de Angola-Africa)
Oi Ariclenes, que bom que tu gostou e aprendeu , um abraço amigo!
@@MatheusBattisti conteúdo super interessante.
agora estou com um erro qndo tento visualizar os primeiros eventos criados dá erro: Invalid argument supplied for foreach() , só funciona para eventos novos que já tenham sido cadastrados com os itens, por outra penso dá alguns erros ao carregar certas imagens.
@@MatheusBattisti Quando eu crio uma migration não aparece aquela linha do schema(tennho que digitar) e o "hasfactory" não funciona,
as rotas não funcionam desse jeito:
Route::post('/events', [EventController::class, 'store']) ----- só assim: Route::post('/events', 'EventController@store');
tem haver com a versão do laravel ?
@@ariclenesmalanga4561 sim você esta usando uma versão mais antiga mesmo,eu usava assim como você descreveu,antigamente ,mas essa nova mudou a sintaxe.
SOLUÇÃO PARA O ERRO DO 'ARRAY NULL':
1º No Controller mude a linha onde define as categorias para: $event->items = json_encode($request->items, JSON_UNESCAPED_UNICODE);
2º Ainda no Controller, na classe onde você irá pegar os dados no Banco de Dados e enviar para a view você irá acrescentar: $event->items = json_decode($event->items);
É uma solução manual ao problema. Ocorreu comigo no Laravel 11.X PHP 8.2 .
O curso está incrível, acabei de adquirir também o curso de SQL na udemy, Matheus se tiver como um dia gravar um vídeo navegando pela documentação, seria muito útil para o avanço no conhecimento do Laravel.
Muito obrigado pelo seu ensinamento estou aprendendo a cada dia com os cursos de Hora de Codar
Que curso incrivel! Outra coisa: Amei o fato de voce ensinar a gente a configurar o VS Code para usar o Laravel. Maioria dos cursos incentiva comprarmos PHP Storm. Sei que PHP Storm é uma otima IDE, mas para quem ta começando fica puxado pagar uma IDE...
Conteúdo muito bom, parabéns.
Muito bom.
Alias, Parabéns pela a video-Aula, muito bom!
Professor qual melhor prática salvar em json ou criar uma nova tabela com esses itens e fazer uma seleção de dados entre ambas as tabelas ???
Que incrivel
valeu Alisson!
conteúdo maravilhoso!
valeu Marcio!
@@MatheusBattisti esse método funciona em versões antigas, como 5.3 ?
Caaaara que incrível, uma pergunta: Qual é a diferença entre "json" e "jsonb" ? Tem alguns projetos que eu trabalho que salvam os dados no banco como "jsonb"
Pessoal que comentou que os outros itens que não tem a propriedade JSON estavam dando erro, é só fazer a validação antes de rodar o foreach assim:
@if($event->items != "")
Dúvida...: Se eu ja tenho o banco de dados mysql com as tabelas. na criação do site preciso ainda ter migrations ? se "não", então como acessar os registros ?
Boa noite Matheus. Obrigado pelo ótimo conteúdo! Venho acompanhando o curso e cheguei até aqui. Até agora tudo deu certo conforme você ensinou. Mas percebi que, quando vou realizar um cadastro, se eu deixar algum campo em branco, há um erro no cadastro. O cadastro só funciona se eu preencher todos os campos. Não sei se, mais pra frente, vc vai mostra como resolver isso, mas se é um erro, poderia mostrar como resolver esse problema? Obrigado!
up
Quando fizer a migration coloca que o dado pode ser nulo,resolve.
opa, da uma pesquisada nisso aqui, pode resolver seu problema, no caso eu usei com o campo imagem. $table->string('image')->nullable(); isso fica no arquivo de migration, esse nullable significa que o valor pode ser nulo
Eu resolvi assim :
public function up(): void
{
Schema::table('events', function (Blueprint $table) {
$table->json('items')->nullable();
});
}
e no blade é só fazer isso
@if($event->items != null)
@foreach($event->items as $item)
{{$item}}
@endforeach
@else
Não possui mais informações
@endif
Nesse caso professor se eu já tenho um banco de dado pronto preciso fazer isso?
Ola bom dia!! tenho dois modelos diferentes ( cliente e telefone ), quero adicionar um campo no form d cliente que serviria pra adicionar telefones, mas queria que esse registro de telefone fosse uma foreignkey! desculpe se n estou sabendo explicar!! consigo salvar um registro so por vez!
So que estou ter problemas em adicionar uma coluna do tipo json com migration. $table->json('items');
ola boa tarde , a aula foi otima , mas da erro quando eu testei os demais cards
Excelentes aulas. Com algumas mudanças estou seguindo esse curso usando o ajax para não recarregar a página. É uma pena que a tag {{}} do blade só funciona no script se o codigo estiver embutido na view. Importando não.
opa, isso acontece por causa da renderização do PHP antes de mostrar o HTML =(
Meu foreach() Funcionou desta forma (Eu fiz o download do Laravel 10/05/2022, uso Xammp, Visual Studio Core, Windows 10):
O evento conta com:
{{-- It has taking data of database (Column 'items') as list form --}}
@foreach($event->items as $event-> items)
{{$event->items }}
@endforeach
Mas não iria salvar como json no banco? Como faz pra salvar com formato de json ao invés de array
Mensagem de erro: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in y
our SQL syntax; check the manual that corresponds to your MariaDB server version
for the right syntax to use near 'json not null' at line 1 (SQL: alter table `e
vents` add `items` json not null)
Cara, eu tenho um arquivo JSON existente, como faço para retornar esse arquivo no laravel via API usando o Insomia?
Ótimo curso e estou aprendendo muito! Só tenho agradecer pelo conteúdo. Estou passando por um problema que ocorre quando salvo o json no Banco de dados, só é salvo o último item selecionado da checkbox. Daí quando faço foreach dar erro. Alguém pode me ajudar?
Oi! Vc já deve ter resolvido, mas deixar aqui para quem mais estiver com dúvida. Isto deve estar ocorrendo pois quando vc definiu o name do input vc esqueceu de colocar os colchetes para sinalizar que é uma lista. Tem que deixar assim: .Desta forma ele vai adicionar os valores à array. Se deixar apenas "items", sem colchetes, ele apenas vai sobrescrever o último valor que vc marcar no checkbox, perdendo os valores anteriores. Abraço!
Muito boa a aula, porém no meu deu um problema, de dizer que no meu Model não existe o HasFactory. Não vai.
no terminal da php artisan make:model (nome do model) ou pode copiar outro model e alterar o nome dele
eu fui fazer a alteração do list-style no css e nao mudou nada
opa Petros, provavelmente tem algum erro no seletor de CSS ou na regra..
Meu arquivo json ao salvar no banco fica "on" para as checkbox selecionadas(no caso era pra aparecer as informações dos itens), como será que posso resolver ?
Veja se o seu input está correto
@@uerleygabriel2755 realmente estava faltando algo no input, valeu!!
Quando salvo o Json no banco algumas palavras com acentos ficam todas bagunçadas no banco. Alguém me ajuda
Acho que criar o banco com unicode utf8 resolve
Dados vetorizados é um crime com o Banco de Dados.
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'description' cannot be null
estou tendo este erro na hora de compilar e carregar a pagina de "Items" quando vou criar o evento, aparece a pagina de erro do laravel com esta mensagem ai, e os dados nao sobem para o Banco de Dados. (criar evento somente com imagem esta dando certo, mas quando crio com os itens é que da erro) estou a um dois já tentando encontrar o erro kkkk alguma ajuda?
refiz todo o código, e deu certo!
@@matheusbaptista27 Puedes cambiar definicion en la migracion usando $table->text('description')->nullable(false);
Esto requiere hacer un php artisan migrate:fresh o reset