Я начал развиваться с Laravel несколько недель назад. Это отличная структура, особенно для моих целей.
Но в этот момент я запутался в функциональности Laravel. (Я не совсем уверен, если это проблема PHP или Laravel).
Я хочу разработать API для моего веб-приложения. Чтобы поддерживать чистоту своей структуры приложения, я отделяю все контроллеры API от других, по этой причине я дал новым контроллерам новое пространство имен.
Когда я дал моему контроллеру пространство имен "App\Http\Controllers\API"
, все пошло странно. Это просто дает мне пустой сайт, независимо от кода.
Но когда я удаляю API из пространства имен ("App\Http\Controllers"
), контроллер работает и генерирует правильный вывод.
Итак, этот код не работает:
<?php
namespace App\Http\Controllers\API;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Response;
use App\Room;
use App\Http\Resources\Room as RoomResource;
class RoomsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$room = Room::all();
return Response::json($room);
}
}
И у меня работает этот Код:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Response;
use App\Room;
use App\Http\Resources\Room as RoomResource;
class RoomsAPIController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$room = Room::all();
return Response::json($room);
}
}
Я просто хочу знать, что я делаю не так. Второй метод работает, но кажется, что это «быстрое и грязное» решение.