I am attempting to access the route "localhost:8000/contact/edit/{contact}
in my vue file I am attempting it with
<Link :href="route('contact.edit', {contact:contact.id})">Edit Contact</Link>
Route in web.php
Route::prefix('contact')->group(function() {
Route::post('/', [ContactController::class, 'store'])->name('contact.store');
Route::get('/create/{customer}', [ContactController::class, 'create'])->name('contact.create');
Route::get('/edit/{contact}', [ContactController::class, 'edit'])->name('contact.edit');
});
Controller:
public function edit(Contact $contact) {
dd($contact);
}
When doing things this way, I get the error that the contact parameter is required:
Error: Ziggy error: 'contact' parameter is required for route 'contact.edit'.
Removing the parameter requirement shows that Ziggy is trying to go here:
GET http://localhost:8000/contact/edit?contact=88
Why would Ziggy default to using a query string on a routine route request? I have overcome this by just writing the url out, but No one on my team can figure out why it is acting this way.
So I was working on this problem with OG and we figured out that for some reason the ID is coming out as a string.
The current solution we have come up with is
<a :href='route("contact.test", { contact: parseInt(contact.id) })'>Test</a>
The parseInt causes Ziggy to stop throwing a fit. We are going down the path to figure out why our ID is coming out as a string.