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')代码>。好吧,不过被发现了