Bom dia, estou com problemas após salvar um objeto, criei um relacionamento entre Produtos e Categoria, criei um dropdown para escolher uma categoria, mas ao finalizar cadastro é redirecionado a uma mensagem: "Trying to get property 'id' of non-object ", tentei de tudo e não consigo resolver.
Produto Model
class Produto extends Model
{
public $timestamps = false;
protected $fillable = ['categoria_id', 'nome', 'descricao', 'preco'];
public function categoria()
{
return $this->belongsTo(Categoria::class, 'categoria_id');
}
}
Categoria
class Categoria extends Model
{
public $timestamps = false;
protected $fillable = ['nome'];
public function produtos()
{
return $this->hasMany(Produto::class);
}
}
ProdutosController
use App\Categoria;
use App\Produto;
use Illuminate\Http\Request;
class ProdutosController extends Controller
{
public function index(Request $request)
{
$produtos = Produto::query()
->orderBy('nome')
->get();
$mensagem = $request
->session()
->get('mensagem');
/*echo '<pre>';
var_dump($produtos);
echo '</pre>';*/
return view('produtos.index', compact('produtos', 'mensagem'));
}
public function create()
{
$categorias = Categoria::all();
return view('produtos.create', compact('categorias'));
}
public function store(Request $request)
{
$produtos = Produto::create([
'nome' => request('nome'),
'descricao' => request('descricao'),
'preco' => request('preco'),
'categoria_id' => request('categoria_id')
]);
$request->session()
->flash(
'mensagem',
"Produto {$produtos->nome} criado com sucesso."
);
return view('produtos.index', compact('produtos', 'mensagem'));
}
public function destroy(Request $request)
{
Produto::destroy($request->id);
$request->session()
->flash(
'mensagem',
"Produto removido com sucesso"
);
return redirect()->route('listar_produtos');
}
}