2016-09-07 10 views
4

私はLaravel 5.2.45アプリケーションを持っています。 私はこのようなコントローラの構造を持っている:私はLaravel 5ルートをサブフォルダ内に定義し、コントローラ経由で表示する

views 
    admin 
     home.blade.php 

そして、私のroutes.phpの内部:私はこのようなビューのフォルダ構造を持っている私は

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 

をhave

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

私は入力するときにそれを取得しようとしています.../admin/homeブラウザは管理フォルダ内にhome.blade.phpを表示します。

私のroutes.php:

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

+0

先行スラッシュを削除すると、次のようになります。 'Route :: get(' Admin/home '、' Admin \ AdminController @ index ');' – Anas

答えて

1

にプレフィックスがありません。それはこのように見えるように修正してください:今すぐ

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

、お使いのブラウザでBASE_URL /管理/ホームを試してみて、それが動作するはずです。

0

ので、それはなりスラッシュ。ここで

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

prefixあなたは常にグループ内のルートにする必要がありますURLの先頭を指定することができます。したがって、そのグループ内に入れたルートはadminで始まります。

名前空間では、参照するコントローラのフォルダ/名前空間を指定できます。したがって、すべてのコントローラーはApp\Http\Controllers\Admin名前空間とapp/Http/Controllers/Adminフォルダーになければなりません。

+0

これで問題は解決されません。ルートを登録するときに先頭のスラッシュ。 –

+0

はい、これは機能しません。以前と同じ問題。私はすでにすべての組み合わせを試しました。/admin/home、/ home、home、admin/home、admin.home ... – KondukterCRO

1

あなたが名前空間接頭辞オプションでルートグループを使用することができます:あなたが前方大手ドロップする必要がある

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

私はそれをしてRouteCollection.php行のNotFoundHttpExceptionを取得します。 ブラウザに入力しました http:// localhost:8888/project/public/admin/home コントローラーとビューは、私が質問に記載した正しいフォルダーにあります 私はadmin.home、admin/home、homeを返すようにしましたが、何も動かない – KondukterCRO

+0

ルートファイルの内容を投稿できますか? – Jonathon

+0

我々は両方ともエラーを逃した - '接頭辞' => '管理者'の代わりに '接頭辞'、 '管理者' しかし、素晴らしい提案のおかげで – KondukterCRO

関連する問題