промежуточное ПО ('auth') не защищает страницу - PullRequest
0 голосов
/ 06 февраля 2019

Я создал страницу создания поста, которая должна быть доступна только зарегистрированным пользователям, используя приведенный ниже код для моего контроллера

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests\StorePost ;
use App\Post;

class PostController extends Controller
{
public function __construst(){
    $this->middleware('auth');
}
//
public function index()
{
    # code...
    $posts = Post::latest()->get();
    return view('posts.index',compact('posts'));
}
public function show(Post $post)
{
    # code...
    return view('posts.show',compact('post'));
}
public function create()
{
    # code...
    return view('posts.create');
}
public function store(StorePost $request)
{
    # code...
    $validated = $request->validated();
    Post::create(request(['title','body']));
    return redirect('/');
}
}

файл web.php

<?php
 Route::get('/','PostController@index')->name('home');
 Route::get('/posts/create','PostController@create');
 Route::post('/posts','PostController@store');
 Route::get('/posts/{post}','PostController@show');
 Route::get('/tasks','TasksController@index');
 Route::get('/tasks/{tasks}', 'TasksController@show'); 
 Route::post('/posts/{post}/comment','CommentController@store');
 Route::get('/register','RegistrationsController@create');
 Route::post('/register','RegistrationsController@store');
 Route::get('/login','SessionsController@create');
 Route::get('/logout','SessionsController@destroy');

Проблема, с которой я сталкиваюсь, заключается в том, что любой может посетить страницу создания сообщений, чего не должно быть

1 Ответ

0 голосов
/ 06 февраля 2019

Как уже упоминалось @Mozammil, ваша функция с именем __construst() не является конструктором.Это просто функция с именем __construst.Промежуточное программное обеспечение работает в Контроллере следующим образом: вы должны добавить промежуточное программное обеспечение в конструктор, который представляет собой определенный тип функции, который должен называться __construct.

Если вы назовете его как-нибудь еще, он будетне вызывается при создании объекта и промежуточное программное обеспечение никогда не будет выполнено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...