я начинаю создавать мое приложениеМогу ли я сделать это в laravel 5.2?
- Установка Laravel 5 с композитором
- PHP ремесленник мигрирует ---> ОК
- PHP ремесленник делают: Auth ---> ОК
- PHP ремесленник делают: контроллер > AboutController -> оК
Результат: у меня есть "Home" страница (защищенная страница требует аутентификации) и общественную страницу, "О"
Файл маршрута:
<?php
Route::get('/', function() {
return view('welcome');
});
Route::auth();
Route::get('/about', '[email protected]');
Route::get('/home', '[email protected]');
....
?>
О программе контроллера, как это:
<?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
файл:
@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
Когда я вышел из системы :
Все в порядке, и я могу получить доступ к странице About без проблем. Домашняя страница требует логина, приятно.
Когда я вошел в:
я могу получить доступ к домашней странице, это нормально. Но когда я получить доступ к странице о, я получаю сообщение об ошибке на странице просмотра что-то вроде:
FatalErrorException в AliasLoader.php линий 63: Максимальная функция уровень вложенности «100» достиг, прерывания!
Если я поставил: $this->middleware('auth');
на странице About, это нормально, но я не хочу этого делать.
Я попытался все это:
<?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');
}
}
?>
В этом случае он работает нормально, так что я хочу знать, если мое решение хорошо, или, если я ошибаюсь.
Возможный дубликат [Laravel 5.2 Создание объекта FatalErrorException в AliasLoader.php строке 63] (http://stackoverflow.com/questions/35819097/laravel-5-2-create- object-fatalerrorexception-in-aliasloader-php-line-63) –
Хмм. Я просто попытался воспроизвести это в Laravel 5.3, но это сработало для меня. Как выглядит ваш файл 'resources/views/about.blade.php'?Фактически вам не нужны проверки промежуточного программного обеспечения в конструкторе (я имею в виду, что у вас определенно есть обходное решение), но они не должны быть ненужными в первую очередь –