Комментарий с Auth в laravel - PullRequest
0 голосов
/ 30 мая 2018

Я хочу, чтобы пользователь оставлял комментарий только при входе в систему. В противном случае появляется сообщение: «Вы должны войти, чтобы оставить комментарий».Если я вошел в систему, он работает, если нет, он не просто перенаправить обратно! Я решил это.Проблема заключалась в том, что PostCommentsController находился в промежуточном программном обеспечении администратора, где вы должны войти в систему, чтобы увидеть, являетесь ли вы администратором.А если вы не залогинились, то перенаправьте на индекс.

Контроллер:

public function store(Request $request)
{
    if (Auth::check()) {
        $user = Auth::user();
        $data = [
            'post_id' => $request->post_id,
            'author' => $user->name,
            'email' => $user->email,
            'body' => $request->body
        ];

        Comment::create($data); 
        $request->session()->flash('comment_success','Your comment have been submited and is waiting moderation');
        return redirect()->back();
    } else {            
        $request->session()->flash('login','You must be logged in to post a comment');
        return redirect('/login')->back();
    }       
}

Ответы [ 3 ]

0 голосов
/ 31 мая 2018

В вашем операторе else просто используйте этот код return redirect('/login');, используя функцию back(), чтобы перенаправить пользователя обратно.

0 голосов
/ 31 мая 2018

Laravel имеет встроенную систему аутентификации, если вы используете ее, вы можете использовать конструкторы, подобные примеру из моего проекта.

public function __construct()
{
    $this->middleware('auth');
}

Это просто говорит о том, что пользователь не может получить доступ ни к одному из методов этого классабез входа в систему. Если они не вошли в систему, он перенаправит их обратно на страницу входа.Вы также можете иметь, по вашему мнению, @auth и @guest.Я использую это, чтобы показать информацию о частной информации, например, частные серверы могут видеть только зарегистрированные пользователи.

Если у вас есть другие вопросы, на которые я смогу ответить, дайте мне знать, я с удовольствием помогу!

https://laravel.com/docs/5.6/authentication

0 голосов
/ 30 мая 2018
public function store(Request $request)
{
    if (!Auth::check()) { 
        $request->session()->flash('login', 'You must be logged in to post a comment');
        return redirect()->back();
    }

    $user = Auth::user();
    $data = [
        'post_id' => $request->post_id,
        'author' => $user->name,
        'email' => $user->email,
        'body' => $request->body
    ];

    if (Comment::create($data)) {
        $request->session()->flash('comment_success', 'Your comment have been submitted and is waiting moderation');
        return redirect()->back(); 
    } 

    $request->session()->flash('comment_error', 'Your comment does not submited. Try again!!');
    return redirect()->back();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...