2016-09-07 1 views
4

Laravel 5.2.45 앱이 있습니다. 내가하위 폴더 내에 Laravel 5 경로를 정의하고 컨트롤러를 통해 표시합니다.

namespace App\Http\Controllers\Admin; 

use App\Http\Controllers\Controller; 
use Illuminate\Http\Request; 
use App\Http\Requests; 

class AdminController extends Controller 
{ 

/** 
* Create a new controller instance. 
* 
* @return void 
*/ 
public function __construct() 
{ 
    $this->middleware('auth'); 
    $this->middleware('is.admin'); 
} 

public function index() 
{ 
    return view('admin.home'); 
} 

} 

이 AdminController.php 내부

App 
    Http 
     Controllers 
      Admin 
       AdminController.php 

는이 같은 전망의 폴더 구조가 :

views 
    admin 
     home.blade.php 

을 그리고 내 routes.php의 I 내부 이 같은 컨트롤러 구조 가지고있다

Route::get('/admin/home', 'Admin\[email protected]'); 

그래서 입력 할 때 .../admin/home 브라우저가 home.blade.php를 admin 폴더에 표시하려고합니다.

내 routes.php :

당신은 앞으로 주요 드롭 할 필요가
Route::auth(); 

Route::get('/', '[email protected]'); 

Route::get('/home', '[email protected]'); 

Route::get('/add_user', '[email protected]'); 

Route::group(['prefix', 'admin', 'namespace' => 'Admin'], function() { 
    Route::get('home', '[email protected]'); 
}); 
+0

드롭 슬래시 선도 그래서이된다 :'경로는 :: ('\ AdminController 인덱스 @ 관리' '관리자/집') 얻을,'는 – Anas

답변

1

에 접두사가 없습니다. 브라우저에서 BASE_URL/관리/가정을 시도, 지금

<?php 
    Route::group(['prefix' => 'admin', 'namespace' => 'Admin'], function() { 
     Route::get('/home', '[email protected]'); 
    }); 

을하고 그것을 작동합니다 : 같이 그것을 수정합니다.

0

슬래시는 그래서됩니다 :

Route::get('admin/home', 'Admin\[email protected]');

+0

이 문제가 해결되지 않습니다, Laravel 어떤 추가 할인 트림 경로를 등록 할 때 선행 슬래시. –

+0

예, 작동하지 않습니다. 이전과 같은 문제. 나는 이미 모든 조합을 시도했다./admin/home,/home, home, admin/home, admin.home ... – KondukterCRO

1

당신은 네임 스페이스 접두사 옵션을 사용하여 경로 그룹을 사용할 수 있습니다. 여기

Route::group(['prefix' => 'admin', 'namespace' => 'Admin'], function() { 
    Route::get('home', '[email protected]'); 
}); 

prefix 당신은 항상 그룹 내부의 루트에 있어야 할 URL의 시작을 지정할 수 있습니다. 따라서 그룹에 속한 경로는 admin으로 시작해야합니다.

네임 스페이스를 사용하면 참조하는 컨트롤러의 폴더/네임 스페이스를 지정할 수 있습니다. 따라서 모든 컨트롤러는 App\Http\Controllers\Admin 네임 스페이스와 app/Http/Controllers/Admin 폴더에 있어야합니다.

+0

방금 ​​그렇게했고 RouteCollection.php 라인 161에서 NoFoundHttpException을 얻습니다 : 브라우저에 입력했습니다. http : // localhost : 8888/project/public/admin/home 컨트롤러 및 뷰가 질문에서 언급 한대로 올바른 폴더에 있습니다. 반환보기 admin.home, admin/home, home으로 시도했지만 아무 것도 작동하지 않습니다. – KondukterCRO

+0

경로 파일의 내용을 게시 할 수 있습니까? – Jonathon

+0

우리 둘 다 오류가 누락되었습니다 - '접두어'=> 'admin'대신 'prefix', 'admin' 큰 제안에 감사드립니다 – KondukterCRO