Mismo controlador de recursos Laravel para múltiples rutas
Estoy tratando de usar un rasgo como sugerencia de tipo para mis controladores de recursos Laravel.
El método del controlador:
public function store(CreateCommentRequest $request, Commentable $commentable)
En el que laCommentable
es la característica de tipo de rasgo que usan mis modelos Eloquent.
losCommentable
rasgo se ve así:
namespace App\Models\Morphs;
use App\Comment;
trait Commentable
{
/**
* Get the model's comments.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany
*/
public function Comments()
{
return $this->morphMany(Comment::class, 'commentable')->orderBy('created_at', 'DESC');
}
}
En mi ruta, tengo:
Route::resource('order.comment', 'CommentController')
Route::resource('fulfillments.comment', 'CommentController')
Tanto los pedidos como las entregas pueden tener comentarios, por lo que usan el mismo controlador, ya que el código sería el mismo.
Sin embargo, cuando publico enorder/{order}/comment
, Obtuve el siguiente error:
Iluminar \ Contratos \ Contenedor \ BindingResolutionException
Target [App \ Models \ Morphs \ Commentable] no es instanciable.
¿Es esto posible en absoluto?