Laravel Остановить регистрацию из админки - PullRequest
0 голосов
/ 06 марта 2020

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

, например:

, если регистрация отключена и пользователь пытается go для регистрации страницы он автоматически перенаправит на 404

Таблица настроек:

Имя: Имя параметра или настройки

Значение: Значение (если это значение = 0 , что означает, что эта опция отключена, и если она 1 , что означает, что она включена)

Я уже добавляю столбец в таблицу настроек "stop_register" «

я хочу, чтобы значение этого столбца равнялось 0, тогда регистрация выключена, а когда 1, то регистрация включена

Ответы [ 3 ]

3 голосов
/ 06 марта 2020

Вы можете использовать middleware для выполнения этой задачи,

Чтобы создать новое промежуточное ПО, используйте команду make: middleware Artisan:

php artisan make:middleware CheckRegistration

Приведенная выше команда создаст CheckRegistration класс в каталоге app / Http / Middleware.

В этом промежуточном программном обеспечении вы можете применить свой лог c, чтобы разрешить регистрационный маршрут или нет, в зависимости от value

Промежуточного программного обеспечения:

<?php

namespace App\Http\Middleware;

use Closure;

use App/Registration;

class CheckRegistration
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $value = Registration::select("value"); // assuming value is either 0 or 1

        if ($value == 0) {
            return redirect('404'); // view with 404 display error
        }

        return $next($request);
    }
}

Как и в приведенном выше коде, он будет перенаправлен на 404-просмотр ошибок, если значение равно 0, в противном случае запрос будет передан дальше в приложение.

Код не проверяется.

Ссылка здесь

1 голос
/ 06 марта 2020

попробуйте эту версию:

public function Register()
{
  $stop_reg = DB::table('settingstable')->value('stop_register');
  if( $stop_reg==1 )
   {
     return view('register_page');
   }
  elseif( $stop_reg==0 )
   {
     return view('404_page');
   }

}
0 голосов
/ 06 марта 2020

попробуй что-нибудь подобное на своем клинке. хотя я не проверял код.

@php $stop_reg = DB::table('settingstable')->value('stop_register'); @endphp

@if($stop_reg==1)

    <a class="nav-link" href="{{ route('register') }}" style="font-size:11px">Register</a>

@elseif($stop_reg==0)

    <a class="nav-link" href="{{ route('stop_register') }}" style="font-size:11px">Register</a>

@endif

в приведенном выше фрагменте кода, объявить два маршрута; один для страницы регистрации, а второй для 404 страницы. На контроллере есть две функции, для страницы регистрации и страницы 404.

...