Soy nuevo en Laravel. Podría estar cometiendo un error básico aquí, pero he estado intentando e investigando durante un tiempo, necesito orientación aquí.
tengo 2 rutas:
Route::get('ordercontents/{ordercontent}', 'App\Http\Controllers\OrderContentsController@edit'); Route::get('ordercontents/delete/{ordercontents}', 'App\Http\Controllers\OrderContentsController@destroy');
Dentro OrderContentsController.php
tengo las 2 funciones, una para editar un registro y otra para borrarlo.
public function edit(\App\Models\Order_content $ordercontents) { dd($ordercontents); //the attributes will come out empty $orderContentId = $ordercontents->id; $ocs = getOrderContentDetails($orderContentId); return view('ordercontents.edit')->with('ordercontents', $ocs); } public function destroy(\App\Models\Order_content $ordercontents) { $orderId = $ordercontents->order_id; $ordercontents->delete(); return redirect('/new-ordercontent/' . $orderId)->with('success', 'Material removido da ordem de serviço!'); }
El modelo existe y se llama Order_content
. Todo funciona bien para la función de destroy
. Sin embargo, estoy luchando con la función de edit
. Si hago un dd($ordercontents);
la matriz de attributes
del objeto viene vacía dentro de la función de edit
. ¿Qué me estoy perdiendo? ¡Gracias!
Debe asegurarse de que el nombre de la variable que se insinúa en la firma de su método coincida con el parámetro de ruta para el enlace del modelo de ruta:
"Laravel resuelve automáticamente los modelos Eloquent definidos en rutas o acciones de controlador cuyos nombres de variables con sugerencias de tipo coinciden con un nombre de segmento de ruta". - Documentos de Laravel
La firma del método para la edición se puede ajustar para que coincida con el nombre del parámetro de la ruta:
public function edit(\App\Models\Order_content $ordercontent)
Cuando estos no coincidan, se producirá una inyección de dependencia, por lo que se inyectará una nueva instancia de modelo inexistente.
Laravel 8.x Docs - Enrutamiento - Enlace de modelo de ruta - Enlace implícito