Php 如何解决laravel 5中带有make参数的控制器?

Php 如何解决laravel 5中带有make参数的控制器?,php,laravel,laravel-5,Php,Laravel,Laravel 5,以前我可以这样做: Route::get('tutorial', function() { $app = app(); $app->make('App\Models\Hello\Hello'); }); /var/www/laravel/app/Http/Controllers/HelloController.php 不使用make进行实例化是可行的,但这会带来一个错误: Container.php第776行中的ReflectionException:Class Hel

以前我可以这样做:

Route::get('tutorial', function() {
    $app = app(); 
    $app->make('App\Models\Hello\Hello');
});
/var/www/laravel/app/Http/Controllers/HelloController.php

不使用make进行实例化是可行的,但这会带来一个错误:

Container.php第776行中的ReflectionException:Class Hello不存在


您认为我在这里缺少什么?

因为您的类有
名称空间
App\Models\Hello
,所以在尝试实例化该类时必须使用它的
名称空间。因此,您的代码应该如下所示:

Route::get('tutorial', function() {
    $app = app(); 
    $app->make('App\Models\Hello\Hello');
});
要在答案中展开一点,可以删除
make()
方法调用,只需使用
app()
帮助程序,就可以得到相同的结果:

Route::get('tutorial', function() {
    $app = app(); 
    $app->make('App\Models\Hello\Hello');

    // you can achieve the same with the
    // `app()` helper using less characters :)
    app('App\Models\Hello\Hello');
});

由于您的类具有
App\Models\Hello
名称空间
,因此在尝试实例化该类时必须使用它的
名称空间
。因此,您的代码应该如下所示:

Route::get('tutorial', function() {
    $app = app(); 
    $app->make('App\Models\Hello\Hello');
});
要在答案中展开一点,可以删除
make()
方法调用,只需使用
app()
帮助程序,就可以得到相同的结果:

Route::get('tutorial', function() {
    $app = app(); 
    $app->make('App\Models\Hello\Hello');

    // you can achieve the same with the
    // `app()` helper using less characters :)
    app('App\Models\Hello\Hello');
});

显然你缺少了“hello”:)我应该在哪里应用这个?你尝试了
composer dump
?显然你缺少了“hello”:)我应该在哪里应用这个?你尝试了
composer dump
?@funguy很高兴它有帮助!)@因为您的文件结构是app/Models/Hello.php,所以更正确的模型名称空间应该是
app\Models
。这将导致
$app->make('app\Models\Hello')。嗯,发现了though@funguy很高兴这有帮助!:)@因为您的文件结构是app/Models/Hello.php,所以更正确的模型名称空间应该是
app\Models
。这将导致
$app->make('app\Models\Hello')。好吧,不过被发现了