Laravel 5.6中的动态模型加载问题

Laravel 5.6中的动态模型加载问题,laravel,laravel-5.3,laravel-5.4,laravel-5.5,laravel-5.6,Laravel,Laravel 5.3,Laravel 5.4,Laravel 5.5,Laravel 5.6,我正在尝试根据路由类型在控制器中动态加载模型。但当我运行程序时,我会收到一条消息说“找不到类”。这是我的代码和stackoverflow的链接,我用它来解决我的问题 代码: 链接: 这是一个很好的链接,但对我来说不起作用,为什么简单的$model::all()不起作用 在类名中添加另一个斜杠: $class = "\App\Models\$model"; 而不是: $class = "App\Models\$model"; 您需要使用双反斜杠: $class = "App\\Model

我正在尝试根据路由类型在控制器中动态加载模型。但当我运行程序时,我会收到一条消息说“找不到类”。这是我的代码和stackoverflow的链接,我用它来解决我的问题

代码:

链接:


这是一个很好的链接,但对我来说不起作用,为什么简单的$model::all()不起作用

在类名中添加另一个斜杠:

 $class = "\App\Models\$model";
而不是:

 $class = "App\Models\$model";

您需要使用双反斜杠:

$class = "App\\Models\\$model";
尝试使用
app
帮助程序解析模型:

$data = app($class)->where('type_id',$type)->firstOrFail();

给予更多反馈,不仅是它不起作用,还要做一个
$class=new\App\Models\ModelName;和dd($类)我的错误我运行了错误的测试程序。这个解决方案帮助了我。但我也想知道第二部分为什么$class:all();class=MyModel时不起作用。MyModel::all()应该可以工作,因为我在文件开头添加了use MyModel。即使您已经导入了该类,
$model
只是一个字符串,PHP也无法连接到导入。您应该能够执行
应用程序($model)::all()
$data = app($class)->where('type_id',$type)->firstOrFail();