Я построил API в Laravel, версионируются следующим образом:Как «импортировать» пространства имен в Laravel?
/controllers/api/v1/CommentController.php
/controllers/api/v2/CommentController.php
В моих маршрутов я называю правильные контроллеры, как так:
Route::resource('notification', 'api\v2\CommentController');
Это работает, но так как я использую пространство имен в моих контроллерах я должен использовать \ подход, чтобы найти такие классы, как \ Response в корневом пространстве имен?
namespace api\v1;
class NotificationController extends \BaseController {
public function index()()
{
return \Response::json({});
}
}
Есть ли способ избежать этой обратной косой черты и использовать правильное пространство имен? Я пробовал использовать use \App;
, но без результата
Спасибо. Должен ли я делать это для каждого класса, который я использую, как и все мои модели, или существует «базовое» пространство имен, которое я могу использовать как-то вроде «use \» – Jorre
. Я не думаю, что есть способ добавить «базовое» пространство имен как и хотите. Единственное, что я могу сказать: если вы используете Response или любой класс модели внутри вашего пространства имен \ api \ v1 \, это будет интерпретироваться как класс \ api \ v1 \ Response. Поскольку вы не хотите иметь предыдущее пространство имен, вы используете команду \ before Response как: \ Response: :() или использовать инструкцию использования высшего класса, как использовать Response; –
Если BaseController находится в том же пространстве имен, то есть это api \ v1 \ BaseController, вы можете также опустить косую черту. – Dachande663