I have this code in Laravel 5.2 that checks if a given db table name ($what) has its own Model :
public function manage($what) {
$model = Str::studly(Str::singular($what));
if (!is_subclass_of($model, 'Model')) {
\App::abort(404);
}
/* [... other stuff ...] */
}
The problem is that is_subclass_of always fail, also when the model exist and it's a subclass of Model. I suppose it's a namespace problem, how can I fix it?
You can check if your object is an instance of a model with instanceof
:
$article = new \App\Article();
if ($article instanceof \Illuminate\Database\Eloquent\Model) {
You may need the full namespace. When I do get_parent_class()
on one of my models, it returns Illuminate\Database\Eloquent\Model
. So use this instead:
$model = 'App\\' . Str::studly(Str::singular($what));
if (!is_subclass_of($model, 'Illuminate\Database\Eloquent\Model')) {
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With