Laravel 5.4 앞 배경 분리,서로 다른 2 급 도 메 인 이름 으로 접근 방법

첫 번 째 단계:app\http\Controllers 폴 더 를 추가 하여 전단 과 백 엔 드 또는 인 터 페 이 스 를 저장 할 폴 더 를 만 듭 니 다.
열:홈(전단)Admin(백 엔 드)App(인터페이스)폴 더

두 번 째 단계:app\http\providers\RouteServiceProvider.php 수정

<?php

namespace App\Providers;

use Illuminate\Support\Facades\Route;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;

class RouteServiceProvider extends ServiceProvider
{
 /**
 * This namespace is applied to your controller routes.
 *
 * In addition, it is set as the URL generator's root namespace.
 *
 * @var string
 */
 protected $namespace = 'App\Http\Controllers';
 protected $homeNamespace = 'App\Http\Controllers\Home';//PC 
 protected $adminNamespace = 'App\Http\Controllers\Admin';//    

 /**
 * Define your route model bindings, pattern filters, etc.
 *
 * @return void
 */
 public function boot()
 {
 //

 parent::boot();
 }

 /**
 * Define the routes for the application.
 *
 * @return void
 */
 public function map()
 {
 //$this->mapApiRoutes();

 //$this->mapWebRoutes();
 $sld_prefix = explode('.',$_SERVER['HTTP_HOST'])[0];
 if(config('route.admin_url') == $sld_prefix){
  $this->mapAdminRoutes();
 }elseif(config('route.home_url') == $sld_prefix){
  $this->mapHomeRoutes();
 }elseif(config('route.api_url') == $sld_prefix){
  $this->mapApiRoutes();
 }
 }

 /**
 * Define the "web" routes for the application.
 *
 * These routes all receive session state, CSRF protection, etc.
 *
 * @return void
 */
 protected function mapWebRoutes()
 {
 Route::middleware('web')
  ->namespace($this->namespace)
  ->group(base_path('routes/web.php'));
 }

 /**
 * Define the "api" routes for the application.
 *
 * These routes are typically stateless.
 *
 * @return void
 */
 protected function mapApiRoutes()
 {
 Route::prefix('api')
  ->middleware('api')
  ->namespace($this->namespace)
  ->group(base_path('routes/api.php'));
 }

 /**
 *     
 */
 protected function mapAdminRoutes()
 {
 Route::middleware('web')
  ->namespace($this->adminNamespace)
  ->group(base_path('routes/admin.php'));
 }

 /**
 * PC 
 */
 protected function mapHomeRoutes()
 {
 Route::middleware('web')
  ->namespace($this->homeNamespace)
  ->group(base_path('routes/home.php'));
 }
}
세 번 째 단계:routes 디 렉 터 리 에 admin.php 와 home.php 경로 만 들 기

4 단계:각각 app\Http\Controllers\Admin 과 app\Http\Controllers\\홈

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;

class AdminController extends Controller
{
 public function index()
 {
 echo "this is admin";
 }
}

<?php
namespace App\Http\Controllers\Home;
use App\Http\Controllers\Controller;

class HomeController extends Controller
{
 public function index()
 {
 echo "this is home";
 }
}

다섯 번 째 단계:각각 admin.php 와 home.php 에 새 경로
Route::get('/', 'AdminController@index');
Route::get('/','HomeController@index');
STEP 6:테스트


STEP 7:운행 오류
오류 1:laravel Class'App\Http\Controllers\\Controller'를 찾 을 수 없습니다.
오류 2:Class App\Http\Controllers\\IndexController 가 존재 하지 않 습 니 다.
해결 방법:
PHPstorm Terminal 콘 솔 에"coposer dump-autoload"를 입력 하 십시오.
laravel 은 coposer 로 클래스 를 불 러 옵 니 다.명령 으로 만 든 클래스 가 아니 라 autoload 를 업데이트 해 야 합 니 다.
PHPstorm 편집 기 를 사용 하지 않 았 다 면 로 컬 에 coposer 를 설치 한 다음 cmd 를 관리자 로 실행 하고 프로젝트 의 루트 디 렉 터 리 에 들 어가"coposer dump-autoload"를 실행 해 야 합 니 다.
이상 의 이 Laravel 5.4 앞 배경 이 분리 되 었 습 니 다.서로 다른 2 급 도 메 인 이름 방문 방법 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기