Bom dia, estou com um problema que visualizei na hora de exibir a flashMessage no cadastro das séries, pois sempre aparece "$serie->id = 0", estou usando o MySQL.
A mensagem aparece assim: Série 0 criada com sucesso Exemplo de série
Segue abaixo a conecxão com banco:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=banco_series
DB_USERNAME=root
DB_PASSWORD=********
O arquivo de migração:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CriarTabelaSeries extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('series', function(Blueprint $table) {
$table->string('nome');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('series');
}
}
O controller de series:
<?php
namespace App\Http\Controllers;
use App\Models\Serie;
use Illuminate\Http\Request;
class SeriesController extends Controller
{
public function index(Request $request) {
$series = serie::query()
->orderBy('nome')
->get();
$mensagem = $request->session()->get('mensagem');
return view('series.index', compact('series','mensagem'));
}
public function create()
{
return view('series.create');
}
public function store(Request $request)
{
$serie = Serie::create($request->all());
$request->session()
->flash(
'mensagem',
"Série {$serie->id} criada com sucesso {$serie->nome}"
);
return redirect('/series');
}
}
A classe:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Serie extends Model
{
public $timestamps = false;
protected $fillable = ['nome'];
# protected $primaryKey = 'id';
}
E a parte da view.
@extends('layout')
@section('cabecalho')
Séries
@endsection
@section('conteudo')
@if(!empty($mensagem))
<div class="alert alert-success">
{{ $mensagem }}
</div>
@endif
<a href="/series/criar" class="btn btn-dark mb-2">Adicionar</a>
<ul class="list-group">
@foreach ($series as $serie)
<li class="list-group-item">{{$serie->nome}}</li>
@endforeach
</ul>
@endsection
Além disso, quando vou no MySQL workbench e peço para selecionar o dados da tabela series, não existe outra coluna que não seja nome, não possui chave primária nem nada.