【问题标题】:Illuminate\Routing\Controller or App\Http\Controllers\ControllerIlluminate\Routing\Controller 或 App\Http\Controllers\Controller
【发布时间】:2020-09-15 04:45:53
【问题描述】:
我是 PHP 新手,使用 PhpStorm。我有一个疑问,这就是使用
的区别
Illuminate\Routing\Controller
和
App\Http\Controllers\Controller
我想传递一个 API,但是每当我必须决定 Controller 类导入的哪个路由时,我都会怀疑其中的区别。
谁能解释一下?
【问题讨论】:
标签:
php
laravel
class
controller
phpstorm
【解决方案1】:
Illuminate\Routing\Controller 是框架中的控制器类。 App\Http\Controllers\Controller 是您项目中扩展框架控制器的那个。如果您的控制器具有覆盖方法或某些您希望它们可用于其他扩展控制器的基本方法,例如;
namespace App\Http\Controllers;
use App\Traits\DateTime\DateTime;
use App\Traits\Partner\PartnerDetail;
use App\Traits\Redirect\RedirectRoute;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController; // this is in the framework
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
class Controller extends BaseController
{
// Laravel Traits
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
// Project Traits
use RedirectRoute, DateTime, PartnerDetail;
public function someCommonMethod()
{
//
}
}
<?php
namespace App\Http\Controllers;
class DashboardController extends Controller
{
public function index()
{
$this->someCommonMethod();
}
}
如果您的App\Http\Controllers\Controller 没有什么特别之处,那么您可以选择Illuminate\Routing\Controller