2016-11-02 10 views
2

私はlaravel 5.2でこれを実行できますか?

  1. 自分のアプリケーションを作成する作曲
  2. PHPの職人の移行でlaravel 5をインストールします---> OK
  3. PHPの職人メイク開始:AUTH ---> OK
  4. PHPの職人メイク:コントローラ> AboutController - > [OK]

結果:私は "ホーム" ページ(セキュアページの必要性認証)と公開ページを持っている、

"について"

ルートファイル:

<?php 
    Route::get('/', function() { 
     return view('welcome'); 
    }); 
    Route::auth(); 
    Route::get('/about', '[email protected]'); 
    Route::get('/home', '[email protected]'); 
    .... 
?> 

ザ・コントローラについては、このようなものです:私がログアウトしていた場合

@extends('layouts.app') 

@section('content') 
<div class="container"> 
    <div class="row"> 
     <div class="col-md-10 col-md-offset-1"> 
      <div class="panel panel-default"> 
       <div class="panel-heading">About</div> 

       <div class="panel-body"> 
        About page! 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 
@endsection 

<?php namespace App\Http\Controllers; use App\Http\Requests; use 
Illuminate\Http\Request; 

    class AboutController extends Controller { 

     public function __construct() { 

     } 

     public function index() { 
      return view('about'); 
     } 
    } 

これは私のabout.blade.phpファイルです:
すべて問題なく、[バージョン情報]ページに問題なくアクセスできます。ホームページにはログインが必要です。

私がログインしているとき:
私はホームページにアクセスできますが、それは問題ありません。 しかし、私はについてのページにアクセスしたとき、私はビューのページ何かのようにエラーが表示されます。

AliasLoader.php線63でFatalErrorException:達した「100」の最大関数のネストレベル、中止!

私が「情報」ページに$this->middleware('auth');を置くと、それは問題ありませんが、それはしたくありません。


私はこれをすべて試してみました:

<?php 
    ............ 
    //$this->middleware('auth'); 
    //$this->middleware('auth', ['only' => 'create']); 
    //$this->middleware('auth', ['only' => ['create', 'edit', 'destroy']]); 
    //$this->middleware('guest', ['except' => 'index']); 
    //$this->middleware('guest', ['except' => ['index', 'create']]); 
    //$this->middleware('guest'); 
    ........ 
?> 

をしかし、問題は持続しました。この場合

<?php 
    namespace App\Http\Controllers; 
    use App\Http\Requests; 
    use Illuminate\Http\Request; 
    use Illuminate\Support\Facades\Auth; 

    class AboutController extends Controller { 

     public function __construct() { 
      if (Auth::check()) { 
       $this->middleware('auth'); 
      } 
      else { 
       $this->middleware('guest'); 
      } 
     } 

     public function index() { 
      return view('about'); 
     } 
    } 
?> 

それが正常に動作しますので、私は私の解決策が良いかどうかを知りたい、または私が間違っている場合:このページはミドルウェアを必要とするので、私はこれをしなかったよう

ITSが見えます。

+1

可能な重複[Laravel 5.2 AliasLoader.phpラインでオブジェクトを作成しますFatalErrorException 63](http://stackoverflow.com/questions/35819097/laravel-5-2-create-オブジェクト - fatalerrereception-in-aliasloader-php-line-63) –

+1

Hmm。私はLaravel 5.3でこれを複製しようとしましたが、それは私のために働いていました。あなたの 'resources/views/about.blade.php'ファイルはどのように見えますか?実際には、コンストラクタでミドルウェアのチェックをする必要はありません(つまり、回避策があります)が、最初は不必要です –

答えて

関連する問題