这是我的 Controller.php,所有其他 Controller 都从它扩展而来。我本来希望这样做
<?php
namespace App\Http\Controllers;
use App\User;
use App;
use URL;
use App\City;
use Illuminate\Foundation\Bus\DispatchesCommands;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController {
use DispatchesCommands, ValidatesRequests;
}
但是看起来好像不起作用。我需要在每个使用它的 Controller 中调用 use App\User ,即使它正在扩展基本 Controller 。
这不起作用:
<?php
namespace App\Http\Controllers;
class HomeController extends Controller { .... }
但这确实:
namespace App\Http\Controllers;
use App\User;
use App;
use URL;
use App\City;
class HomeController extends Controller { .... }
这正常吗?难道一定要那么痛苦吗:-) 每个 Controller 中都使用了一些类,只是有点令人惊讶的是我每次都需要调用它们。
注意:我正在从 4.2 迁移并希望使用命名空间 谢谢!
最佳答案
我建议您阅读 php 手册中的此页面:http://php.net/manual/en/language.namespaces.importing.php
考虑以下代码:
<?php
namespace App;
use App\User;
class MyClass extends Controller
{
public function __construct()
{
new User(); // we refer to the App\User
}
}
//another file
<?php
namespace App\AnotherNamespace;
class MySecondClass extends Controller
{
public function __construct()
{
new User(); // I refer to App\AnotherNamespace\User
}
}
在上面的示例中,我使用 User 作为引用。但是我期望有不同的对象类型。
希望您现在能更好地理解它。 考虑一个好的 IDE!!! 这将是最适合您的解决方案。当您输入“User”时,按“ctrl -> space”并查看结果非常有用。只需按键盘上的几个按钮即可完成:)
PS。如果您来自 4.2,我建议您直接更新到 5.1因为 5.0 也不再受支持。 Laravel 5.1 是 LTS 版本,因此支持时间更长!关于php - Laravel 5.0 - 在基本 Controller 中调用使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32672101/